沒有字母和數字的 PHP 程式
阿恆
你見過沒有英文字母和數字的 PHP 程式嗎?這是可能的嗎?Gareth Heys 有一篇教學文件,示範如何不使用英文字母和數字,創造出 PHP 的變量、字符串、數字、陣列等。Alex Inführ 以此為基礎,構思了創造 PHP 函式的方法,他的程式只用了 7 個不同的字符:$_=+();
首先看看怎樣創造一個變量,PHP 容許我們在變量名稱中使用 _ (underscore),所以我們可以使用 $_、$__ 等等作為變量名稱。
怎樣創造一個數字呢?有幾個方法,首先,未定義的變量 PHP 都預設為 0,只要使用足夠多的 ++ 運算子,多大的數字也可以造出來。
|
|
便會把變量 $_ 設定為 9。
另一個方法是依靠 PHP 把空白字符串轉換為 0 這個特性,例如:
|
|
創造陣列也不難:
|
|
第 1 行創造變量 $_,第 2 行藉著設定第 0 個元素的值來創造一個陣列。
字符串又怎樣造呢?PHP 在特定的情況下會替我們產生一些字符串,例如把一個陣列變量放在一個字符串表達式中,PHP 會把這個陣列轉換成「Array」:
|
|
第 3 行把陣列放在一個字符串表達式中,創造出「Array」字符串。
另一個方法是把變量 $_ 加到無窮大 (使用很多 + 和 ++),這時 $_ 便儲存著常數 INF,PHP 會把函式 _() 視為 gettext() 的別名,利用這個函示可把常數 INF 變為字符串「INF」。
|
|
毫無疑問地這樣寫程式很累,程式碼也很龐大,Alex Inführ 的 PHP 程式只用 $_=+(); 七個字符寫成 log() 函式,長度達 46 KB,所以除了作為工餘的消遣外,不要在工作上使用上述的技術。(我警告你了,老闆怪罪下來不要找我。)