gpt4 book ai didi

PHP 和问题

转载 作者:行者123 更新时间:2023-12-02 07:47:21 25 4
gpt4 key购买 nike

下面的代码没有给出任何错误。但我对第二部分感到困惑。

  ..........
// Get meta data for the module
$this->template->module_details = $this->module_details =
$this->module_m->get($this->module);

// If the module is disabled, then show a 404.
empty($this->module_details['enabled']) AND show_404();
..........

对我来说,第二部分应该是这样的。

if(empty($this->module_details['enabled']){
show_404();
}

Q1。是一样的吗? AND 是怎么回事?

Q2。你能像第一部分那样把 = 加倍吗?你为什么需要这样做? (A=B=C)

提前致谢。

最佳答案

Q1:每个 bool 运算符都表现得“懒惰”。这意味着,如果表达式明确解析为 truefalse,它将不会计算以下(子)表达式

true or doSomething();
false and doeSomething();

在这两种情况下,doSomething() 都不会被执行,因为 bool 表达式已知为 true/false。反过来

true and doSomething();
false or doSomething();

这里 doSomething() 总是被执行,因为(完整的)表达式的结果在执行之前是未知的。

所以你是对的,show_404() 被执行,如果带有 empty() 的部分的计算结果为 true,结果是您提供的 if 语句。

问题 2:在 PHP 中,每个运算符都有一个返回值。在 =(赋值)的情况下,返回值只是赋值的值。

$a = $b = 1;
// =>
$a = ($b = 1); // where ($b = 1) === 1

没有人真正需要它,但有时它很有用,因为它更明显,$a$b 在这点。

关于PHP 和问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5990373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com