设为首页 收藏本站
查看: 623|回复: 0

[经验分享] PHP面向对象之----static

[复制链接]

尚未签到

发表于 2017-3-26 07:08:27 | 显示全部楼层 |阅读模式
众所周知,OOP的目的就是了把一个次编写代码,复制复制再复制,继承继承再继承的合理利用每一次的工作,同时也方便代码管理。哪个环节出错了就去找哪个环节。但是有时候我们写的类,最终发现它只使用了一次,并没有生成多个的实例。这个时候再去new, 不仅影响效率,代码也显得不够简洁。
所以非常感性的php,为我们提供了一种便捷高效的方法 static 有了它以后这些统统不再是问题。

class hw{  
public static function hi(){  
return 'Hello World!!!';  
}  
}  
echo hw::hi();   
view plaincopy to clipboardprint?
class hw{  
public function hi(){  
return 'Hello World!!!';  
}  
}  
echo hw::hi();
从上面的例子可以看出了,使用了static和不使用static属性以后可以直接使用::方法从外面直接调用,但是为了效率和其他方面因素,还是建议使用static 来限制。
static 类内部调用方法
class foo{  
private static function c(){  
return 'abcd';  
}  
public static function a(){  
echo self::c();  
}  
}  
foo::a();   
使用了static 关键字来限制方法是必须使用self:: 在本类内部引用,上面的例子已经将的很清楚了。
static 属性
view plaincopy to clipboardprint?
class foo{  
public static $a;  
public static function a(){  
self::$a='abcd';  
}  
}  
foo::a();  
echo foo::$a;   
我们同样可以使用static关键字来限制变量 这个时候变量不会一直保持上一次负值时候的值。
static 继承与使用
view plaincopy to clipboardprint?
class foo{  
public static $a;  
public static function a(){  
return 'abcd';  
}  
}  
class oo extends foo{  
public static  function a(){  
echo '1234';  
}  
}  
oo::a();   
static 的继承和普通类的继承方法一样,并没有太大的区别。
view plaincopy to clipboardprint?
class foo{  
public static $a;  
public static function a(){  
return 'abcd';  
}  
}  
class oo extends foo{  
public static  function aa(){  
echo parent::a();  
}  
}  
oo::aa();   
只是使用的时候有写区别,必须是parent::方法来引用父类的方法,并不能直接self::来使用父类的方法,如下例子,则不会显示任何值:
view plaincopy to clipboardprint?
class foo{  
public static $a;  
public static function a(){  
return 'abcd';  
}  
}  
class oo extends foo{  
public static  function aa(){  
echo self::a();  
}  
}  
oo::a();   
再一个简单的例子
view plaincopy to clipboardprint?
<?php  
class Status {  
public static $ICE = -1;  
public static $WATER = 0;  
public static $VAPOR = 1;   
}  
?>  
<?php  
$exStatus = Status::$ICE;  
if ($exStatus == Status::$ICE)  
echo "Ice";  
else  
echo "Water";  
?>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-355384-1-1.html 上篇帖子: PHP 数据结构算法 下篇帖子: php cms 选择哪个好?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表