我在我的系統中有兩個類。一個叫做文件,第二個是文件。 在我的本地主機上,當我實例化文件我得到文件對象,但我的朋友運行相同的腳本獲取文件的對象像大寫字母無法識別和「文件」等於「文件」。 這是一些可配置的東西?我們都在Windows上運行。我有WampServer,他有XAMPP。類名中的大寫字母PHP
回答
類名在PHP不區分大小寫(即不依賴於操作系統)
class myclass {}
$x = new MYclaSS;
var_dump($x);
object(myclass)#1 (0) {
}
所以一般建議是:你不應該開始設法在那裏混的東西:)
這樣的代碼應該不工作:
class ab {}
class AB {}
Fatal error: Cannot redeclare class AB in ... on line x
PHP是區分該類命名不敏感。這意味着即使您的課程名稱爲File
,反之亦然,您通常也可以執行$file = new file()
。
你是否依靠自動加載類文件?如果是這種情況,根據計算機的不同,解釋器並不總是先找到相同的文件。這將解釋這個問題。
我強烈建議你重命名你的類。依靠大小寫來區分兩種不同的東西總是一個壞主意,按照慣例,類名始終以大寫字母開頭。
如果你不能改變類名,我建議看看php namespaces。
但是區分大小寫的文件系統上的自動加載器不會在不同的情況下找到您拼寫的類。 – 2016-01-18 14:06:18
我的課程不以大寫字母開頭...從來沒有,永遠不會開始 – dsdsdsdsd 2016-03-29 02:06:00
@dsdsdsdsd - Y,爲什麼基本符合所有標準? – 2018-01-25 05:52:40
我猜你正在使用某種懶加載作爲類文件,可能是你在編寫PHP框架。祕密在於你的__autoload
功能。找到它。
下面的代碼:
<?php
class file {
public $a;
}
class File {
public $a2;
}
$x = new file();
給出了一個錯誤:Cannot redeclare class File
如此反覆,關鍵可能是哪個文件是包括。
你的代碼的行爲顯示其中一個類沒有被加載(否則你會看到類的redeclare錯誤)。它可能是首先加載file
類的自動加載器,然後當它發現定義爲File
時,它只是假定它已經加載了該類(由於PHP的大小寫不敏感行爲)。
- 1. php大寫字母大寫字
- 2. java中的大寫字母到大寫
- 3. 調試過程中大寫字母與大寫字母環境var名稱
- 4. PHP搜索大寫和小寫字母
- 5. 在PHP中以大寫字母拆分?
- 6. Ruby - 命名約定 - 類/模塊名稱中縮寫詞的字母大小寫?
- 7. 檢測小寫字母和大寫字母php
- 8. php查詢(小寫字母/大寫字母)驗證
- 9. 大寫字母中的SimpleDateFormat
- 10. C#:首字母大寫的方法名?
- 11. 命名圖案的大寫字母
- 12. 大寫字母,小寫字母,大寫的Ant屬性
- 13. 如何匹配的第一個字母是大寫/大寫字母在PHP?
- 14. 大寫字母和小寫字母
- 15. 如何在testdox名稱中使用大寫字母的首字母縮寫?
- 16. 首字母大寫的字符串首字母大寫
- 17. 在php中將俄文字符從大寫字母轉換爲小寫字母
- 18. X86 NASM將大寫字母轉換爲大寫字母和小寫字母
- 19. FullCalendar名稱以大寫字母
- 20. 如何用大寫字母做域名?
- 21. 列名更改字母大小寫
- 22. 大寫字母的第一個字母
- 23. 帶有大寫字母的大寫字母筆畫
- 24. 68K中的大寫字母小寫
- 25. Oracle中的大寫函數名稱比小寫字母快嗎?
- 26. Groovy/Gremlin類的命名方案(需要大寫字母)
- 27. 的strftime使第一個字母大寫(大寫)在PHP
- 28. 在AutoCompleteTextView中大寫字母
- 29. Preg Replace中的小寫字母和大寫字母
- 30. 如何識別TSQL中的大寫字母和小寫字母?
你真的不應該混合這樣的名字 – JamesHalsall 2011-03-10 13:21:19