【问题标题】:what is this complex expression meaning? [duplicate]这个复杂的表达是什么意思? [复制]
【发布时间】:2013-06-11 02:12:24
【问题描述】:

code1 是来自 zencart 核心 php 文件的代码,我很困惑它是什么。
是 code1 等于 code2 吗?
& ~ 是什么意思?

<?php 
/* code1 */
$errors_to_log = (version_compare(PHP_VERSION, 5.3, '>=') ? E_ALL & ~E_DEPRECATED & ~E_NOTICE : version_compare(PHP_VERSION, 5.4, '>=') ? E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_STRICT : E_ALL & ~E_NOTICE);

/* code2 */
if(version_compare(PHP_VERSION,5.3,'>=')){
    $errors_to_log = E_ALL & ~E_DEPRECATED &~E_NOTICE;
}else if(version_compare(PHP_VERSION, 5.4, '>=')){
    $errors_to_log = E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_STRICT;
}else{
    $errors_to_log = E_ALL & ~E_NOTICE;
}
?>

【问题讨论】:

标签: php zen-cart


【解决方案1】:

代码 1 是否等于代码 2?

是的。代码 1 使用嵌套的 ternary operator,而代码 2 使用 else-if 结构。如果用括号表示优先级,代码 1 会更清楚。

&amp;~ 是什么意思?

&amp; 在 php 中指的是 BITWISE AND operator。 php 中的 ~ 指的是 BITWISE NOT 或补充 operator。在这种情况下,它给出了常量的补码。

但是,您需要知道~ 在此处具有最高优先级。

【讨论】:

    猜你喜欢
    • 2013-11-22
    • 2016-06-10
    • 2012-08-03
    • 2015-02-24
    • 1970-01-01
    • 2015-03-12
    相关资源
    最近更新 更多