echo $this->name; 就行了啊parent的实例就是obj2,所以直接用$this另外,只有静态的变量的才能用::调用看这个例子你就明白了
<?php
class MyClass
{
public $name= 'Public';
public $aaa="aaa";
} class MyClass2 extends MyClass
{
public $name = 'Public111';
public function printHello()
{
// echo parent::$name;
echo $this->name;
echo $this->aaa; }
} $obj2 = new MyClass2(); $obj2->printHello(); ?>
<?php
class MyClass
{
public $name= 'Public';
public $aaa="aaa";
} class MyClass2 extends MyClass
{
public $name = 'Public111';
public function printHello()
{
// echo parent::$name;
echo $this->name;
echo $this->aaa; }
} $obj2 = new MyClass2(); $obj2->printHello(); ?>
parent只能访问父类中的static(静态)变量你这样写本身就违背了面向对象的方法.
如果你想在子类中不覆盖父类的成员变量,请这样声明.同样可以在子类中通过parent::printHello()来打印出父类的私有成员$name;class MyClass
{
private $name= 'Public';
public function printHello()
{
echo $this->name;
}
...
}class MyClass2 extends MyClass
{
public $name = 'Public111';
public function __construct()
{
parent::__construct();
}
public function printHello()
{
echo $this->name1;
parent::printHello();
}
}
<?php
$instance = new SimpleClass()
?>
当把一个对象已经创建的实例赋给一个新变量时,新变量会访问同一个实例,就和用该对象赋值一样。此行为和给函数传递入实例时一样。可以用克隆给一个已创建的对象建立一个新实例。 例子 19-3. 对象赋值<?php
$assigned = $instance;
$reference =& $instance;$instance->var = '$assigned will have this value';$instance = null; // $instance and $reference become nullvar_dump($instance);
var_dump($reference);
var_dump($assigned);
NULL
NULL
object(SimpleClass)#1 (1) {
["var"]=>
string(30) "$assigned will have this value"
}这是手册的例子为什么前两个都是null呢,谢谢了分不多,等下次多给你分
$reference指向的是$instance的引用地址$instance = null只是断开了$instance与实例中连接,同时$reference也断开了.
所以$assigned还是存在的.google出来的答案.也是学习中.