欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

php里面的魔术方法

时间:2023-07-30

<?phpheader('Content-Type:text/html;charset=utf-8');//抽象类abstract class Humanity {public $name;public $sex;public $iq=10;protected $money;protected $dna;const BIRTHPLACE='地球';static public $counter=0;//静态属性,它是公共的资源和具体的实例没有关系//构造函数public function __construct($name,$sex){self::$counter++;$this->name=$name;$this->sex=$sex;}protected function chew($food){echo "

{$food}已经被咀嚼完成!

";}//抽象方法abstract public function eat($food);static public function hello(){echo '

您好!我是来自'.self::BIRTHPLACE.'的人类

';}}class Student extends Humanity {const BIRTHPLACE='火星';private $hh=666;public $studentId;public function __set($name,$value){ $this->$name=$value;}public function __get($name){return ($this->$name)*666;}public function test($subject){echo "

{$this->name}正在考{$subject}!

";}public function eat($food){$this->chew($food);echo "

{$this->name}正在快速的吃{$food}!

";}}$hanMM=new Student('韩梅梅','女');echo $hanMM->hh;

解析:

核心在于,私有性的《《《属性》》》调用时才能执行__set和__get方法。
怎么执行呢?
调用私有性的属性即可,但是切记调用时不能赋值哦

<?phpheader('Content-Type:text/html;charset=utf-8');//抽象类abstract class Humanity {public $name;public $sex;public $iq=10;protected $money;protected $dna;const BIRTHPLACE='地球';static public $counter=0;//静态属性,它是公共的资源和具体的实例没有关系//构造函数public function __construct($name,$sex){self::$counter++;$this->name=$name;$this->sex=$sex;}protected function chew($food){echo "

{$food}已经被咀嚼完成!

";}//抽象方法abstract public function eat($food);static public function hello(){echo '

您好!我是来自'.self::BIRTHPLACE.'的人类

';}}class Student extends Humanity {const BIRTHPLACE='火星';private $hh=666;public $studentId;public function __call($funcName,$agrs){echo "__call方法";}private function test($subject){echo "

{$this->name}正在考{$subject}!

";}public function eat($food){$this->chew($food);echo "

{$this->name}正在快速的吃{$food}!

";}}$hanMM=new Student('韩梅梅','女');echo $hanMM->test();

解析:
调用私有性的方法时才自动执行的哦

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。