php中类定义了一个$name,但是为什么在用$this->name,引用时,name前不用$呢?就是为什么不是$this->$name

解决方案 »

  1.   

    因为这就是类,因为这就是php.哈哈哈 
      

  2.   

    类中声明的成员(即类中变量),访问的时候就是要用$this->name.
    你在类外声明类实例的时候,也要这样访问,如:
    $obj = new Abc();
    echo $obj->name;
      

  3.   

    很简单,$ 放在前面了$this->name
    $ 变量声明
    this 归属
    -> 对象成员
    name 变量名
      

  4.   

    很简单,$ 放在前面了$this->name
    $ 变量声明
    this 归属
    -> 对象成员
    name 变量名
      

  5.   

    $(this->name)  这样好理解,哈哈哈 ,我是瞎说的,不要听我的...
      

  6.   


    有没有这么用$this->$name?的情况
      

  7.   


    有啊,你打算测试一下php错误提示功能的时候。
      

  8.   

    因为就是这样规定的,就像为什么叫PHP一样。哈哈
      

  9.   

    我的理解:$this $表示对象的引用。 $this->name   ->name:表示属性。 就好象  User.name 一样。 
    哈哈,我也是菜鸟,刚学习PHP。打酱油路过。
      

  10.   

    有啊,变量的变量$name = 'name';
    echo $this->$name;
      

  11.   

    进行了测试<?php  function a(){
     $name = 'name';
                    echo $this->$name;
    }
    a();
    ?>
    出现错误:Fatal error: Using $this when not in object context in 
    这是为什么呢?
      

  12.   

    this是引用该类内部定义的边变量的关键字,你要把this->name看作是name,这样理解起来就比较容易。$this->name就等价于$name.你要弄清楚this关键字的意义。很简单的就会解决你所产生的疑问。
      

  13.   


    是有的,比如一个类里需要连接两个不同的数据库class a
    {
            protected $dzconn;
    protected $dbconn;
             protected function conn($conn)
        {
         if (!$this->$conn)
         {
         if ($conn == 'dzconn')
         {
         $host = 'a';
         $user = 'u1';
         $pwd  = 'p1';
         }
         elseif ($conn == 'dbconn')
         {
         $host = 'b';
         $user = 'u2';
         $pwd  = 'p2';
        
         }
         $this->$conn = mysql_connect($host, $user, $pwd);
         mysql_query("SET NAMES gbk", $this->$conn);
         }
        }
     }这样写就不用重复写两个函数了
      

  14.   

    你可以$this->$name,不过这样看着不是多美观。
    $this->name这样简捷、方便
      

  15.   

    name 不是变量名,
    是属性或者方法名。
    规定如此。