相关疑难解决方法(0)

PHP和案例敏感性

在PHP中,变量和常量名称区分大小写,而函数名称则不区分大小写.

据我所知,PHP是发生这种情况的唯一语言.我使用的所有其他语言要么完全区分大小写,要么完全不区分大小写.

为什么PHP 部分区分敏感?

请注意,我不是问哪些名称区分大小写,而是为什么.

更新

我想我可以补充说,对于那些谁觉得我问的利益,下面的列表:

区分大小写

  • 字符串
  • 变量
  • 对象属性
  • 常量,默认情况下

不区分大小写

  • 关键词等
  • 功能
  • 对象方法
  • 常量,如果相应定义

注意:

  • 因此,课程是一个混合包:
    • class关键字是不区分大小写
    • 作为函数的类方法不区分大小写
    • 作为变量和常量的类属性区分大小写
  • 因为字符串区分大小写,所以依赖于字符串的任何内容(例如数组键和值)也都区分大小写

php case-sensitive case-insensitive

38
推荐指数
2
解决办法
3万
查看次数

PHP静态方法调用变量类名和命名空间

我正在尝试从具有相同名称空间的另一个类调用名称空间类的静态方法.但是另一个类的名称包含在变量中:

<?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函数,但没有任何效果.谁知道什么是错的?

php static-methods namespaces

9
推荐指数
1
解决办法
5648
查看次数