【发布时间】:2016-02-23 20:59:28
【问题描述】:
在将PHP源代码转换为操作码之前,有没有消除死条件的优化过程?
例子:
<?php
if (false) {
echo 'false';
}
echo 'true';
它是否只转换为echo 'true';?
如果答案是肯定的,PHP可以处理以下哪种情况?
if(false); //Explicit boolean
$true = true; if($true); //Variable that was assigned a constant boolean
if(ClassName::Constant); //Class constant
if(1>2); //Constant value expression
如果存在版本特定的差异,请多多包涵。
【问题讨论】:
-
公平地说 php 确实尝试在运行时优化代码
-
优化的大问题是变量是
typed dynamically,因此可以在不同的时间(并且经常这样做)保存完全不同的东西。难以优化。 -
是的,只是想说php尝试优化代码,但任务更小
-
PHP 的 OpCache 可以在字节码层面进行优化,但 PHP 代码本身的优化取决于开发者
标签: php php-internals