类名PHP中的大写字母

我的系统中有两个班级。一个叫文件,第二个是File。 在我的本地主机上,当我实例化文件时,我得到文件对象,但我的朋友运行相同的脚本获取文件的对象,如大写字母无法识别,“文件”等于“文件”。 这是一些可配置的东西吗? 我们都在Windows上运行。我有WampServer,他有XAMPP。     
已邀请:
PHP对类命名不区分大小写。这意味着你通常可以做
$file = new file()
,即使这个班级被命名为
File
,反之亦然。 您是否有机会依赖类文件的自动加载?如果是这种情况,则可能根据计算机,解释器并不总是首先找到相同的文件。这将解释这个问题。 我强烈建议你重命名你的课程。依靠案例来区分两种不同的东西总是一个坏主意,按照惯例,类名总是以大写字母开头。 如果您无法更改类名,我建议您查看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框架中编程。秘密将在于你的
__autoload
功能。找到它。 检查自动加载的PHP手册。 以下代码:
<?php

class file {
    public $a;
}

class File {
    public $a2;
}

$x = new file();
给出错误:
Cannot redeclare class File
再次,诀窍可能是包含哪个文件。 代码的行为显示其中一个类未加载(否则您将看到class redeclare错误)。可能是自动加载器首先加载
file
类,然后当它找到定义为
File
时,它只是假定它已经加载了类(由于PHP的不区分大小写的行为)。     

要回复问题请先登录注册