<?php //对比$this和self /* * $this更倾向于对象本身 * */ class Par{ public function a(){ echo '我是A'; } public function b(){ $this->a(); } } class Son extends Par{ //重写父类的A方法 public function a(){ echo '我是SonA'; } } //实例化子类 $son=new Son(); $son->b(); /* * self更倾向于类本身 * */ class Par{ public static function a(){ echo '我是A'; } public static function b(){ self::a(); } } class Son extends Par{ //重写父类的A方法 public static function a(){ echo '我是SonA'; } } //实例化子类 Son::b(); ?>
项目中使用服务来执行webservice,由于对方系统api不稳定,经常导致服务崩溃,只能重启,一个月差不多要重启一次。初期的解决办法是捕获异常,然后continue掉。<?php try { $url = 'http...
php arrayaccess 官方的说法是让你能以数组的形式访问对象,对于这种php内置接口一直不太明白有什么用,坚持多看文章,终于理解,特来分享,思路不同,更易于理解。(1).创建一个学生类,并且实现arrayaccess 接口。<?php class studen...
面试中PHP面试官会问调用一个不存在的方法,如何知道是哪个文件哪行调用的?假设方法是getWorkLoad()回答1:开启PHP错误输出,PHP会输出Fatal error: Call to undefined function getWorkLoad() in D:\wwwroot\thinkpa...
重构框架的时候想要考虑支持下cli模式,于是参考了thinkphp的底层。/** * 获取应用根目录 * @return string */ public static function getRootP...
主要原理是通过PHP创建多个子进程,在子进程中发送进程闹钟信号,然后再监听闹钟信号中继续发送闹钟信号。同时通过父进程设置非阻塞运行。代码如下:<?php /** * 订单任务 */ class Order { &n...