PHP地雷的一般[已关闭]
2022-08-30 13:14:19
其他人在编写PHP Web应用程序时发现了哪些惊喜?编译时类继承有一个众所周知且需要解决的问题,但我知道其他几个问题,并希望尝试建立该语言的顶级陷阱列表。
注意:
我作为高级PHP5开发人员担任过多个职位,因此PHP工作支付了我的账单,这个问题并不意味着PHP作为一种语言的崩溃,因为我使用过的每种语言都有一些众所周知或不为人所知的惊喜。
其他人在编写PHP Web应用程序时发现了哪些惊喜?编译时类继承有一个众所周知且需要解决的问题,但我知道其他几个问题,并希望尝试建立该语言的顶级陷阱列表。
注意:
我作为高级PHP5开发人员担任过多个职位,因此PHP工作支付了我的账单,这个问题并不意味着PHP作为一种语言的崩溃,因为我使用过的每种语言都有一些众所周知或不为人所知的惊喜。
我不确定这是否算数,但是编译PHP脚本的需求是一个巨大的性能问题。在任何严肃的PHP项目中,您都需要某种编译器缓存,例如APC,eAccelerator,PHP Accelerator或(商业)Zend平台。
如果创建两个对象并将它们存储在彼此的属性中,则垃圾回收器将永远不会接触它们:
$a = new stdClass;
$b = new stdClass;
$a->b = $b;
$b->a = $a;
当一个大类创建一个通常存储主类的小型帮助器对象时,这实际上很容易做到:
// GC will never clean up any instance of Big.
class Big {
function __construct() {
$this->helper = new LittleHelper($this);
}
}
class LittleHelper {
function __construct(Big $big) {
$this->big = $big;
}
}
只要PHP针对的是短的快页面请求,他们就不太可能解决这个问题。这意味着PHP不能被依赖于守护进程或其他具有较长寿命的应用程序。