【问题标题】:What does the !function() do?!function() 有什么作用?
【发布时间】:2016-09-09 16:40:39
【问题描述】:

我正在从 php 手册中查找真/假布尔条件,我认为这应该回显一个假,但它却回显一个真。那么!call() 的真正作用是什么?是说这个功能刚刚好?

http://php.net/manual/en/control-structures.if.php

<?php
    $true=0; //false

    function call($true)
    {
        if ($true =1){
            return TRUE;

        }
        if ($true =0){
            return FALSE;
        }
    }

    if(call()) { 
        echo "true";
    }

    if(!call()) // or if(!call()) {
        echo "false";
    }

    if($true) { 
        echo "<br>true";
    }

    if(!$true)  {
        echo "<br>false";
    }
?> 

输出:

true

false

【问题讨论】:

标签: php


【解决方案1】:

! 是逻辑运算符not。假设您定义了一个 var:

$myVar = true ;
var_dump( !$myVar); // will echo false

您的 call() 函数将返回 truefalse。所以!cal(); 将返回相反的结果,falsetrue

看看PHP Manual

【讨论】:

    【解决方案2】:

    函数 call() 返回truefalse!call() 只是表示此函数的返回值为 false 的场景。

    我个人喜欢设置具有布尔返回值的函数,当调用时,等于一个变量,所以我肯定会写:

    $val = call();
    
    if(!$val) {}
    

    在你的情况下,如果你想把代码减少到最少,你可以写

    echo call() ? "true" : "false";
    

    替换这些行:

    if(call())
    { 
        echo "true";
    }
    
    if(!call()) // or if(!call())
    {
        echo "false";
    }
    

    【讨论】:

      猜你喜欢
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-12
      • 2017-12-05
      • 2015-03-08
      • 2012-02-18
      • 2012-10-18
      相关资源
      最近更新 更多