本篇文章介绍的内容是PHP面向对象中的内容,123图解静态属性与静态方法,现在分享给大家,有需要的朋友可以参考一下
/*
在属性,和方法前
加static 修饰,这种称为静态属性/静态方法.
静态属性
静态属性存放在类空间中
1、类声明完毕,该属性就已存在,不需要依赖于对象而访问.
2、类在内存中只有一个,因此静态属性也只有一个.
*/
class Human {
static public $head = 1; public function changeHead() {
Human::$head = 9;
} public function getHead() {
return Human::$head;
}
}echo Human::$head; //1// 静态属性的访问方法echo '<br >';// 静态属性只有一个,为所有的对象的共享.$m1 = new Human();$m1->changeHead();$m2 = new Human();$m3 = new Human();echo $m2->getHead(),'<br >'; //9echo $m3->getHead(),'<br >'; //9/*
静态方法
立即学习“PHP免费学习笔记(深入)”;
普通方法,存放于类内的,只有1份
静态方法,也是存放于类内的,只有1份
区别在于:
普通方法需要对象去调动,需要绑定$this
即,普通方法,必须要有对象,且用对象调动
而静态方法,不属于哪个对象,属于类,因此不需要去绑定$this.
即,静态方法,通过类名就可以调动.
*/
class Human2 {
public $name = '张三'; static public function cry() {
echo '5555';
} public function eat() {
echo '吃饭';
} public function intro() {
echo $this->name;
}
}// 此时一个对象都没有Human2::cry();// 下面这个eat是非静态方法,应由对象来调用Human2::eat();/*
报错提示:
Strict standards: Non-static method Human2::eat() should not be called statically
*/echo '<br >';//Human2::intro();/*
直接报错:
Fatal error: Using $this when not in object context
*//*
总结:
如上分析,其实非静态方法,是不能由类名静态调用的.
*/
$lisi = new Human2();$lisi->cry(); //5555
/*
类-youjiankuohaophpcn访问->静态方法 可以
类->动态方法 方法内没有this的情况下,严重不支持.逻辑上解释不通.
对象->访问动态方法 可以
对象->静态方法 可以
*/
相关推荐:
以上就是PHP面向对象笔记 —— 123 图解静态属性与静态方法 的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号