//代码1<?php
class Cart
{
 var $owner;
 function set_owner($name)
 {
  $this->owner=$name;
 }
}
?>//代码2<?php
$acart=new Cart;
$acart->set_owner("john");
print $acart->owner;
?>
代码1中函数set_owner()中的$this->owner一旦被代码2赋值,代码1中类的变量$owner是同时也被赋值了吗?如果是,函数中的变量范围不是仅限于函数中吗?如果不是,代码2中的print $acart->owner又意味着什么?

解决方案 »

  1.   

    请先去了解php类这个概念,然后,类中请不要用var关键字了,那个影响中应该是php4的了
      

  2.   


    我看的PHP学习手册,能指点下吗
      

  3.   

    代码2中赋值,是代码1中类Cart的一个实例$acart的变量$owner赋值,如果你在创建一个$acart2 = new Cart;
    $acart2的$owner是没有被赋值的
      

  4.   

    你先google哈   类、类实例化、继承等等概念吧
      

  5.   

    set_owner 方法中的 $this->owner = $name; 就是给类属性 owner 赋值的
    不错,函数中的变量范围是仅限于函数中。但在这里不是冠以作用域 $this 了吗正因为如此,同样是 function ,在类中被译做方法
      

  6.   


    我了解代码2是实例化对象,代码1是构造函数。我是说,代码1这个构造函数,类中函数的$this->owner究竟是对类中变量$owner的引用还是复制
      

  7.   


    如果按这样讲,$this->owner = $name是对$owner的引用而不是复制了?