我在我的系统中有两个类。一个叫做文件,第二个是文件。 在我的本地主机上,当我实例化文件我得到文件对象,但我的朋友运行相同的脚本获取文件的对象像大写字母无法识别和“文件”等于“文件”。 这是一些可配置的东西?我们都在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