我需要創建一個類似於$myvar-test;
的var,但那不是有效的或?
回答
不,它無效。原因是減號( - )。在PHP中,變量可以包含0-9a-zA-Z_,但不能以數字開頭,並且Unicode字母是允許的。請參閱:http://www.php.net/manual/en/language.variables.basics.php
變量是在PHP由 美元符號後面跟的 變量名來表示。變量名稱是 區分大小寫。
Variable names follow the same rules as other labels in PHP. A valid
變量名以字母或下劃線 ,隨後任意數量的 字母,數字或下劃線。作爲 正則表達式,這將是這樣 表示: '[A-ZA-Z_ \ x7f- \ XFF] [A-ZA-Z0-9_ \ x7f- \ XFF] *'
而幾個例子:
<?php
$var = 'Bob';
$Var = 'Joe';
echo "$var, $Var"; // outputs "Bob, Joe"
$4site = 'not yet'; // invalid; starts with a number
$_4site = 'not yet'; // valid; starts with an underscore
$täyte = 'mansikka'; // valid; 'ä' is (Extended) ASCII 228.
?>
您不能在變量名稱中使用破折號。
從文檔:在PHP
變量用一個美元符號後面跟變量名來表示。變量名稱區分大小寫。
變量名稱遵循與PHP中其他標籤相同的規則。有效的變量名稱以字母或下劃線開頭,後跟任意數量的字母,數字或下劃線。爲正則表達式,這將被表述爲: '[A-ZA-Z_ \ x7f- \ XFF] [A-ZA-Z0-9_ \ x7f- \ XFF] *'
來源:http://www.php.net/manual/en/language.variables.basics.php
用於減法減號,你最終會與像$ MYVAR變量相同的結果*測試$ $ myvar的測試,$ MYVAR;測試$ MYVAR(測試這種
只要不使用特殊變量名稱中的語法
請注意,數組鍵名可能包含幾乎任何字符ev en國家語言
變量名遵循相同的規則,如PHP等標籤。有效的變量名稱以字母或下劃線開頭,後跟任意數量的字母,數字或下劃線。作爲一個正則表達式,它將被表述爲: '[A-ZA-Z_ \ x7f- \ XFF] [A-ZA-Z0-9_ \ x7f- \ XFF] *'
所以你的變量名根據這些規則無效。
不,它不是。
http://www.php.net/manual/en/language.variables.basics.php
變量名遵循相同的規則,如PHP等標籤。有效的變量名稱以字母或下劃線開頭,後跟任意數量的字母,數字或下劃線。
有解決方法,但它確實很醜。更好地使用下劃線或駝峯數組或可以使用任何字符串作爲鍵名稱的數組。
這將是解決方法:
${'a-b'} = 'foo';
var_dump(${'a-b'}); // string(3) "foo"
這不是有效的 - 但如果你得到它例如從JSON - 這裏是一個解決辦法:
print_r($JSONObject);
stdClass Object (
[psr-0] => stdClass Object
(
[MyBundle] => 'MyPath'
)
)
...試圖訪問$ JSONObject-> PSR-0;不工作 - 這樣你就可以施放stdClass的到陣列:
$JSONArray = (array)$JSONObject;
print_r($JSONArray);
Array
(
[psr-0] => stdClass Object
(
[MyBundle] => 'MyPath'
)
)
...現在你可以輕鬆的獲取$ JSONArray ['PSR-0]!
- 1. 免費的Pascal有像Haskell這樣的類型變量嗎?
- 2. 像「int nameofvariable」這樣的變量是一個對象嗎?
- 3. 使用像這樣的變量:set.color(Color.variable)
- 4. simplexml無法像這樣解析xml嗎?
- 5. 我可以在PHP中聲明一個像這樣的$(變量名)的變量名嗎?
- 6. systemd無法導入像$ SSH_AUTH_SOCK這樣的環境變量
- 7. 如何增加一個變量,像這樣在PHP
- 8. 是這個全局變量嗎? PHP
- 9. 無效的類型無效,此變量
- 10. 我可以在httpd.conf的shell中使用像hostname這樣的環境變量嗎?
- 11. Eclipse插件提供了像記事本++這樣的變量列表嗎?
- 12. PHP - 有效的變量名
- 13. php這個變量
- 14. 像「&」,「?」這樣的無效字符使用AJAX
- 15. 這些類變量嗎?
- 16. JavaScript中的Yes/No框像這樣在StackOverflow中這樣嗎?
- 17. 如何列出像paypal這樣的無限$ _POST變量的項目?
- 18. PHP中的註冊表類會像這樣工作嗎?
- 19. 我可以通過php傳遞當前變量嗎?如果是這樣如何?
- 20. Clojure有像Mathematica's%這樣的功能嗎?
- 21. HSQLDB有像PostgreSQL這樣的擴展嗎?
- 22. 是否有可能在php中傳遞像myfunction($ var1 =「hi」)這樣的變量?
- 23. IOS - 在像php會話這樣的靜態變量中存儲值
- 24. 如何將變量發佈到像jquery ajax這樣的文件,但使用php
- 25. 在PHP中有這樣的功能嗎?
- 26. PHP:這樣的代碼可能嗎?
- 27. 你能像這樣在ASP經典中聲明一個變量嗎?
- 28. CONCAT在zipWith「沒有這樣的變量」
- 29. 像console.log這樣的字符串中的替代變量
- 30. 如何使用這樣的變量?
根據您在文檔中的引用,不允許使用Unicode。實際上,鑑於PHP支持Unicode的良好記錄,它會讓我感到驚訝。 – Joey 2010-04-22 12:56:40
老實說,我不確定給定的正則表達式在文檔中是否完全匹配(它是否與Unicode字母匹配?),但是如果我想要$華語= 5,我甚至可以使用中文字符;並以相同的方式定義函數名稱。 – Tower 2010-04-22 13:04:00