详谈php静态方法及普通方法的区别
网络编程 2021-07-05 08:23www.168986.cn编程入门
狼蚁网站SEO优化长沙网络推广就为大家带来一篇详谈php静态方法及普通方法的区别。长沙网络推广觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随长沙网络推广过来看看吧
如下所示
<?php header('content-type:text/html;charset=utf-8'); / 普通方法,存放类内,只有一份 静态方法,也是存放于类内,只有一份 区别在于普通方法需要对象去调用,需要绑定$this 即,普通方法,必须要有对象,然后让对象来调用 而静态方法,不属于哪一个对象,不需要绑定$this 即,不需要对象也可以调用 / class Human{ static public $head=1; public function easyeat(){ echo '普通方法吃饭<br />'; } static public function eat(){ echo '静态方法吃饭<br />'; } public function intro(){ echo $this->name; } } Error_reporting(E_ALL|E_STRICT); //此时没有对象!方法可以执行 Human::eat(); / 以下方法easyeat是一个非静态方法,就由对象来调用,但,用类来调用此方法来也可以执行,而严格状态下,此方法会执行,报错, Strict Standards: Non-static method Human::easyeat() should not be called statically in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 32 / Human::easyeat(); / 接上,从逻辑来理解,如果用类名静态调用非静态(普通)方法 比如intro() 那么,这个$this是指哪个对象呢?? 会报错,因为找不到对象! Fatal error: Using $this when not in object context in D:\application\PHPnow-1.5.6\htdocs\yan18\types\staticfun.php on line 23 / Human::intro(); / 如上分析,其实,非静态方法,是不能由类名静态调用的,但目前,php中的面向对象检测不够严格,只要静态方法中没有$this关键字,就会转化成静态方法来处理! / $li=new Human(); $li->eat(); / 类》访问->静态方法(类的方法)->可以 类》访问->普通方法(对象的方法)->不可以(虽然方法里不用$this关键字时,可以!但不支持这种写法) 对象》访问》静态方法(类的方法)->可以 对象》访问》普通方法(对象的方法)->可以 / ?>
以上就是长沙网络推广为大家带来的详谈php静态方法及普通方法的区别全部内容了,希望大家多多支持狼蚁SEO~
上一篇:php下载文件超时时间的设置方法
下一篇:php操作路径的经典方法(必看篇)
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程