2016-09-09 2 views
0

私はPHPのマニュアルからtrue/false boolの条件を探していましたが、これは偽を返すべきだと思っていましたが、代わりにtrueをエコーし​​ます。したがって、!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あなたはこれらの行を置き換えるために

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

を書くことができflow.com/q/2063480)を関数内のifステートメント(およびhttps://en.wikipedia.org/wiki/Yoda_conditions)として使用します。関数に変数を渡すことはないことに注意してください。 '! 'シンボルについては、[このシンボルの意味は?](http://stackoverflow.com/q/3737139)も参照してください。 – Rizier123

+0

あなたのコメントから、私のエラーが表示され、$ true ==が完全に欠落しています。 –

+1

また、関数に変数を渡していません。 – Rizier123

答えて

1

function call()は、trueまたはfalseを返します。 !call()は、この関数の戻り値が偽であるシナリオを単純に示します。

は個人的に私は、ブール戻り値を持つ関数を設定したいと、呼び出されたときに、変数に等しいので、私は間違いなく書くでしょう:あなたのケースでは

$val = call(); 

if(!$val) {} 

を、あなたは最小限にコードをカットしたい場合は、

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をご覧ください。

関連する問題