class Foo
{
const foo='bar';
public $foo='foobar';
const bar='foo';
static $bar='foobar';
}var_dump(foo::$bar); // static property
var_dump(foo::bar);  // class constant$bar = new Foo();
var_dump($bar->foo); // object property
var_dump(bar::foo); // class constant
 
感觉很奇怪,我迷糊的很,怎么就呢过输出了??

解决方案 »

  1.   

    除了 var_dump(bar::foo); // class constant 会出现 bar类未定义,其余都正常啊。你是怎样认为的?
      

  2.   

    var_dump(foo::$bar); // static property
    var_dump(foo::bar);
    这个我觉得要是改成
    var_dump(Foo::$bar); // static property
    var_dump(Foo::bar);
    我还能理解,可是var_dump(foo::$bar); // static property
    var_dump(foo::bar);这样就不知道啥意思了
      

  3.   

    难得PHP中的类名不区分大小写,还是不区分首字母的大小写,我怎么对PHP感觉很不安全了,貌似比较散,很不严谨的那种
      

  4.   

    1. 变量名区分大小写1 <?php2 $abc = 'abcd';3 echo $abc; //输出 'abcd'4 echo $aBc; //无输出5 echo $ABC; //无输出2. 常量名默认区分大小写,通常都写为大写
    (但没找到能改变这个默认的配置项,求解)3. 函数名、方法名、类名 不区分大小写
    但推荐使用与定义时相同的名字1 <?php2 function show(){3 echo "Hello World";4 }5 show(); //输出 Hello World 推荐写法6 SHOW(); //输出 Hello Worldclass cls{  static function func(){   echo "hello world";   }}8 Cls::FunC(); //输出hello world4. 魔术常量不区分大小写,推荐大写
    包括:__LINE__、__FILE__、__DIR__、__FUNCTION__、__CLASS__、__METHOD__、__NAMESPACE__。
    5. NULL、TRUE、FALSE不区分大小写