首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类名PHP中的大写字母

类名PHP中的大写字母
EN

Stack Overflow用户
提问于 2011-03-10 21:19:58
回答 3查看 27.1K关注 0票数 21

我的系统中有两个类。一个是文件,另一个是文件。在我的本地主机上,当我实例化文件时,我得到的是文件对象,但我的朋友运行相同的脚本时得到的是文件对象,就像大写字母无法识别," file“等于" file”。这是一些可配置的东西吗?我们都在Windows上运行。我有WampServer,他有XAMPP。

EN

回答 3

Stack Overflow用户

发布于 2011-03-10 21:26:36

PHP对类命名不区分大小写。这意味着即使类被命名为File,你也可以正常地执行$file = new file(),反之亦然。

您是否碰巧依赖于类文件的自动加载?如果是这样的话,根据计算机的不同,解释器可能并不总是首先找到相同的文件。这将解释这个问题。

我强烈建议您重命名您的类。依靠大小写来区分两个不同的东西总是一个坏主意,而且按照惯例,类名总是以大写字母开头。

如果你不能改变类名,我建议你去看看php namespaces

票数 53
EN

Stack Overflow用户

发布于 2011-03-10 21:26:32

PHP中的类名不区分大小写(这与操作系统无关)

代码语言:javascript
运行
复制
class myclass {}

$x = new MYclaSS;

var_dump($x);

object(myclass)#1 (0) {
}

因此,作为一般建议:您不应该开始并尝试在那里混合一些东西:)

这样的代码应该not工作:

代码语言:javascript
运行
复制
class ab {}

class AB {}

Fatal error: Cannot redeclare class AB in ... on line x
票数 16
EN

Stack Overflow用户

发布于 2011-03-10 21:30:43

我猜您正在使用某种延迟加载来加载类文件,可能您是在PHP框架中编程。秘诀在于你的__autoload函数。找到它。

检查PHP manual for Autoloading

以下代码:

代码语言:javascript
运行
复制
<?php

class file {
    public $a;
}

class File {
    public $a2;
}

$x = new file();

给出一个错误:Cannot redeclare class File所以,诀窍可能是包含了哪个文件。

您的代码行为显示其中一个类没有被加载(否则您将看到类重新声明错误)。可能是自动装载器首先装入file类,然后当它找到File的定义时,它只是假定已经装入了类(由于PHP大小写不敏感的行为)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5260168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档