PHP 具有多条件表达式的变量

PHP variable with multi conditions expression

我正在浏览一个网站的代码,我遇到了这一行:

$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());

这是什么意思?

正如 scaisEdge 在他的评论中所说,这是一个布尔表达式,为了让您清楚,让我们检查一下该表达式:

首先,变量 $useStaticLoader 将保存表达式的结果,它可以是 truefalse,到目前为止很清楚。

条件的第一部分是检查当前 PHP 版本是否大于或等于 5.6

  • PHP_VERSION_IDpredefined constant 那 returns PHP 5.6 的版本 ID returns 类似于 50630 在 php 7 中类似于 70025

条件的第二部分是检查用于执行 PHP 代码的引擎的天气是 ZEND or HHVM

最后一个条件是检查是否存在作为 Zend Guard loaded extenion which means he is checking weather the Zend Guard loaded extenion 一部分的 zend_loader_file_encoded 函数。

为了简化它,条件是检查 PHP 版本是否大于或等于 5.6,它是否不是 HHVM,以及 Zend Guard 加载的扩展是否不可用或未安装。