【问题标题】:PHP variable with multi conditions expression具有多条件表达式的 PHP 变量
【发布时间】:2018-09-11 20:15:55
【问题描述】:

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

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

什么意思?

【问题讨论】:

  • 是一个布尔表达式..结果是真还是假取决于表达式不同部分的布尔结果在这种情况下,如果表达式的3部分为真,则结果为真,否则为假
  • 你到底对这里有什么困惑?
  • @scaisEdge 所以如果所有这些条件都为真$useStaticLoader 将是true,否则它将是false,对吧?
  • 完全正确.. 我已经更新了第一条评论
  • 是的,它检查 php 版本和 zend 加载器文件。

标签: php variables variable-assignment


【解决方案1】:

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

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

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

  • PHP_VERSION_ID 是一个 predefined constant,它返回 5.6 的 PHP 版本 ID 它在 php 7 中返回类似于 50630 的内容,类似于 70025

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

最后一个条件是检查天气 zend_loader_file_encoded 函数是否存在,它是 Zend Guard loaded extenion 的一部分,这意味着他正在检查天气 Zend Guard loaded extenion 是否安装。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    • 2012-02-23
    • 1970-01-01
    • 2021-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多