本篇文章次要讲述的是内部挪用类的公有属性,具备肯定的参考代价,感兴味的冤家能够理解一下,心愿可以帮到你。
内部挪用类的公有属性
先来理解一下PHP类中的__get
以及__set
函数
当试图猎取一个不成达属性时,类会主动挪用__get
函数。
当试图设置一个不成达属性时,类会主动挪用__set
函数。
起首,来看一下__get
函数,先来猎取一个可达属性尝尝:
<?php class A{ public $a=1; private $b=2; function __get($name){ echo 'you can get '.$name; } } $dy = new A(); echo $dy->a; ?>
看一下它的前往:
1
不成绩,不挪用__get
函数,如今我来拜访一个公有的不成达属性:
<?php class A{ public $a=1; private $b=2; function __get($name){ echo 'you can get '.$name; } } $dy = new A(); echo $dy->b; ?>
会发现:
you can get b
阐明这里挪用了__get
函数,我再来看一下__set
函数,一样也是先应用可达的public
属性:
<?php class A{ public $a; private $b; function __set($name,$val){ echo 'you can get '.$name.$val; } } $dy = new A(); $dy->a = 1; echo $dy->a; ?>
看一下输入:
1
应用胜利,不成绩,接着咱们来应用公有属性:
<?php class A{ public $a; private $b; function __set($name,$val){ echo 'you can get '.$name.$val; } } $dy = new A(); $dy->b = 1; echo $dy->b; ?>
这时候看到:
you can get b1 PHP Fatal error: Cannot access private property A::$b in /usercode/file.php on line 11
这里挪用了__set
函数并提醒咱们不克不及应用类的公有属性。
如今来经过__set
函数完成内部应用公有属性:
<?php class A{ public $a; private $b; function __set($name,$val){ $this->$name=$val; } function B(){ echo $this->b; } } $dy = new A(); $dy->b = 1; $dy->B(); ?>
看一下输入:
1
阐明应用胜利。
相干教程:PHP视频教程
以上就是PHP学习以外部挪用类的公有属性的具体内容,更多请存眷资源魔其它相干文章!
标签: php php开发教程 php开发资料 php开发自学 外部调用类
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
抱歉,评论功能暂时关闭!