php 属性区分大小写,PHP函数是否区分大小写?

类名不区分大小写,但始终使用与声明中相同的大小写(与函数相同)。同样,实例化定义的大小写不同的类可能会导致自动加载器出现问题。

另外,类名不区分大小写:

class SomeThing {

public $x = 'foo';

}

$a = new SomeThing();

$b = new something();

$c = new sOmEtHING();

var_dump($a, $b, $c);

输出:

class SomeThing#1 (1) {

public $x =>

string(3) "foo"

}

class SomeThing#2 (1) {

public $x =>

string(3) "foo"

}

class SomeThing#3 (1) {

public $x =>

string(3) "foo"

}

问题是使用自动加载器和区分大小写的文件系统(例如ext2 / 3/4),因为您必须以相同的大小写调用包含类的文件的类名(而不是实际区分类名的方式),或使用strtolower:

类文件:

// filename something.php

class SomeThing {

...

}

自动装带器功能(__autoload或要注册的功能spl_autoload_register)

function my_autloader($className) {

$filename = CLASSES_DIR . DIRECTORY_SEPARATOR . $className . '.php';

if (file_exists($filename)) {

require($filename);

}

}

现在使用以下代码:

$a = new something(); // works

$b = new SomeThing(); // does not work

$c = new SOMETHING(); // does not work

如果您strtolower()在自动加载器代码中添加了对的调用,则可以完成这项工作(即使用自动加载器有效地区分大小写的类名),但是与函数一样,最好以与声明类相同的方式引用一个类,具有与类名相同的文件名,使用自动加载器,而忘记使用strtolower等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值