2016-09-09 2 views
0

PHP 매뉴얼에서 참/거짓 bool 조건을 찾고 있었는데 이것이 false로 반향되어야한다고 생각했지만 실제로는 반향을 일으켰습니다. 따라서 !call()은 실제로 무엇을합니까? 함수가 작동하고 있다고 말하는 것입니까? ! function()은 무엇을합니까?

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 
+3

참조 [3 가지 등호 (HTTP : // stackover flow.com/q/2063480)을 함수 (및 https://en.wikipedia.org/wiki/Yoda_conditions)에있는 if 문에 사용하십시오. 함수에 변수를 전달하지 마십시오. '! '기호는 [이 기호는 무엇을 의미합니까?] (http://stackoverflow.com/q/3737139)를 참조하십시오. – Rizier123

+0

귀하의 의견을 통해, 나는 내 오류를보고, 완전히 $ true ==를 놓쳤습니다. –

+1

또한 함수에 변수를 전달하지 않습니다. – Rizier123

답변

1

함수 호출()은 true 또는 false을 반환합니다. !call()은 단순히이 함수의 반환 값이 false 인 시나리오를 나타냅니다.

는 개인적으로 내가 부울 반환 값 기능을 설정하려면 호출시 변수와 같은, 그래서 나는 확실히 작성합니다 귀하의 경우

$val = call(); 

if(!$val) {} 

을, 당신은 최소한으로 코드를 절단하기를 원한다면, 당신이

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

이 라인 교체 작성할 수

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

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

!이 논리 연산자 not이다. 의 당신이 VAR를 정의한다고 가정 해 봅시다 :

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

귀하의() 함수를 호출하면 true 또는 false를 반환합니다. 따라서 !cal();은 그 반대 인 false 또는 true을 반환합니다.

PHP Manual을 살펴보십시오.

관련 문제