我在我的系統中有兩個類。一個叫做文件,第二個是文件。 在我的本地主機上,當我實例化文件我得到文件對象,但我的朋友運行相同的腳本獲取文件的對象像大寫字母無法識別和「文件」等於「文件」。 這是一些可配置的東西?我們都在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. 調試過程中大寫字母與大寫字母環境var名稱
- 3. 在PHP中以大寫字母拆分?
- 4. Ruby - 命名約定 - 類/模塊名稱中縮寫詞的字母大小寫?
- 5. php查詢(小寫字母/大寫字母)驗證
- 6. 大寫字母中的SimpleDateFormat
- 7. C#:首字母大寫的方法名?
- 8. 命名圖案的大寫字母
- 9. 大寫字母,小寫字母,大寫的Ant屬性
- 10. 在php中將俄文字符從大寫字母轉換爲小寫字母
- 11. FullCalendar名稱以大寫字母
- 12. 帶有大寫字母的大寫字母筆畫
- 13. Groovy/Gremlin類的命名方案(需要大寫字母)
- 14. 如何識別TSQL中的大寫字母和小寫字母?
- 15. C++,接受變量中的小寫字母和大寫字母
- 16. 用大寫字母
- 17. PHP preg_replace()只留下大寫字母
- 18. php mb_convert_case()保留大寫字母
- 19. PHP:列出首字母大寫?
- 20. PHP由大寫字母分解?
- 21. PHP - 前大寫字母加下劃線
- 22. PHP計數大寫字母(不工作)
- 23. 爲什麼PHP中的一些變量用大寫字母寫?
- 24. 如何小寫字母轉換爲大寫字母和大寫字母爲小寫字母
- 25. 大寫小寫字母
- 26. PHP - spl_autoload和命名空間 - 不適用於大寫字母
- 27. 大寫首字母的姓
- 28. 如何僅將大寫字母的首字母大寫,而將其餘字母大寫?
- 29. 帶大寫字母和小寫字母的字符串轉換
- 30. 需要在Delphi中將大寫字母改爲小寫字母
你真的不應該混合這樣的名字 – JamesHalsall 2011-03-10 13:21:19