我似乎能够直接从PHP中的实例为类创建属性?
发布时间:2020-12-13 17:57:36 所属栏目:PHP教程 来源:网络整理
导读:在下面的程序中最后一个语句echo $objb- test;不应该输出任何值.第二个语句应该抛出一个错误,说无法访问私有成员.但是,我在运行程序时得到输出20. 由于PHP是松散类型的语言,因此$objb在类外创建一个新变量… ?php error_reporting(E_ALL); class A { public
在下面的程序中最后一个语句echo $objb-> test;不应该输出任何值.第二个语句应该抛出一个错误,说无法访问私有成员.但是,我在运行程序时得到输出20.
由于PHP是松散类型的语言,因此$objb在类外创建一个新变量… <?php error_reporting(E_ALL); class A { public $a; private $test; protected function sayhello(){ echo "<p>hello class A</p>"; } }//end of class A class B extends A { //private $c; public function sayhellonew(){ $this->sayhello(); echo "<p>hello class B</p>"; } }//end of class B $objb = new B(); $objb->sayhellonew(); $objb->a = 10; echo $objb->a; echo "<br>"; $objb->test = 20; echo $objb->test; ?> 产量
由于$test属性是A的私有属性,因此在B的范围内不可见.这意味着B可以拥有自己的名为$test的属性.当您指定objb-> test = 20时,这就是您要设置的内容.
以下显示您实际上没有设置私有变量: class A { public $a; private $test = 10; protected function sayhello(){ echo "<p>hello class A</p>"; } public function showTestA() { echo "Test in A = " . $this->test . '<br>'; } }//end of class A class B extends A { //private $c; public function sayhellonew(){ $this->sayhello(); echo "<p>hello class B</p>"; } public function showTestB() { echo "Test in B = " . $this->test . '<br>'; } }//end of class B $objb = new B(); $objb->test = 20; $objb->showTestA(); $objb->showTestB(); 这将显示: Test in A = 10 Test in B = 20 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |