我一直覺得所有的php函數都必須以[a-zA-Z]
開頭。爲什麼我可以用非打印字符定義PHP函數?
舉例來說,這會工作:
function a1() {
return "Something, because I'm written properly.";
}
...雖然不會:
function 1a() {
return "Nothing, because you'll encounter an error before this function ever runs.";
}
但是顯示爲rawurldecode('%E2%80%A9')
結果的字符,該文件顯示,當有一個聲明的UTF8內容類型,也可以用來定義一個函數。
在不顯示隱藏字符的文本編輯器,它最終看起來功能已被定義爲function() {
然後可以通過調用執行(這似乎是不超過)();
我可以」不要粘貼源代碼,並讓它仍然正常顯示,所以這裏有一些截圖。首先是一個什麼樣的被顯示在瀏覽器的截圖,第二個是實際的源代碼的截圖與顯示隱藏字符開啓顯示我的文本編輯器(的TextWrangler)內:
瀏覽器:
源代碼:
我的問題:這是故意的嗎?我應該能夠用非打印字符來定義函數/變量,並且仍然能夠完美地工作嗎?如果是這樣,是否記錄在某處?
我找不到任何有關它的信息,但我(顯然)不知道所有的東西。
謝謝!
[PHP變量,方法,類等名稱中的有效字符是什麼?](http://stackoverflow.com/questions/17973357/what-are-the-valid-characters-in-php -variable-method-class-etc-names) –
@AlmaDo我不認爲它是重複的,因爲我看不到這個問題的直接答案 – eis
然後你最好再讀一遍。沒有冒犯,但沒有比這更明確和普遍的答案,我認爲(因爲這包括常見情況和所有限制) –