在PHP中,变量和常量名称区分大小写,而函数名称则不区分大小写.
据我所知,PHP是发生这种情况的唯一语言.我使用的所有其他语言要么完全区分大小写,要么完全不区分大小写.
为什么PHP 部分区分敏感?
请注意,我不是问哪些名称区分大小写,而是为什么.
更新
我想我可以补充说,对于那些谁觉得我问的利益这,下面的列表:
区分大小写
不区分大小写
注意:
class关键字是不区分大小写我正在尝试从具有相同名称空间的另一个类调用名称空间类的静态方法.但是另一个类的名称包含在变量中:
<?php
namespace MyApp\Api;
use \Eloquent;
class Product extends Eloquent {
public static function find($id)
{
//....
}
public static function details($id)
{
$product = self::find($id);
if($product)
{
$type = $product->type; // 'Book'
$product = $type::find($product->id);
return $product;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是Book班级:
<?php
namespace MyApp\Api;
use \Eloquent;
class Book extends Eloquent {
public static function find($id)
{
//....
}
}
Run Code Online (Sandbox Code Playgroud)
我的类型变量在此处包含有效的类名Book.此类位于同一文件夹中,并使用相同的命名空间.此代码返回错误Class 'Book' not found.我尝试了几种变体(我发现的SO问题)使用反斜杠或call_user_func函数,但没有任何效果.谁知道什么是错的?