代码之家  ›  专栏  ›  技术社区  ›  eft

PHP语法$var1->var2是什么意思?

  •  7
  • eft  · 技术社区  · 16 年前

    以下语法的解释是什么?

    $var1->$var2 // Note the second $
    
    3 回复  |  直到 10 年前
        1
  •  17
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

    您正在呼叫一个物业 $var1 其名称与 $var2 .

    例如:

    $var2 = "name";
    
    // The following are equivalent
    $var1->name;
    $var1->$var2;
    
        2
  •  9
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

    $var1 是一个对象。

    $var2 是(可能)内部变量的名称 $VAR1 .

    如果 $var2="test"; 评估结果如下:

    $var1->test;
    

    你可以做各种事情:

    $test = array();
    $name="test";
    print_r($$name); // Prints array();
    
    $test = new stdClass;
    $test->hello = "hi";
    $name2="hello";
    echo $test->$name2; // Echos hi
    

    你甚至可以得到真正的幻想:

    echo $$name->$name2; // Echos hi
    
        3
  •  2
  •   cletus    16 年前

    它意味着动态查询对象中的属性。

    class A {
      public $a;
    }
    
    // static property access
    $ob = new A;
    $ob->a = 123;
    print_r($ob);
    
    // dynamic property access
    $prop = 'a';
    $ob->$prop = 345; // effectively $ob->a = 345;
    print_r($ob);
    

    所以 $var1 是某个对象的实例, -> 指访问该对象的成员,以及 $var2 包含属性的名称。

    推荐文章