2012-02-09 21 views
0

関数の戻り値($ checkZero)をfalse(boolean)にしないでください。 次の結果は、 'ゼロはゼロです。'です。私は何が欠けていますか?PHPの戻り値...私は何が欠けていますか?

class CheckZero { 
    function __construct() { 
     $zero = 3; 
     if ($zero === 0) { 
      return true; 
     } 
     else { 
      return false; 
     } 
    } 
} 

$checkZero = new CheckZero(); 
if (!$checkZero) { 
    echo 'zero is not zero'; 
} 
else { 
    echo 'zero is zero'; 
} 

答えて

1

クラスコンストラクタからはreturnを使用できません。返されるのは、新しく作成されたオブジェクトです。

あなたvar_dump戻り値の場合は、オブジェクトが返されたことがわかります。

 
object(CheckZero)#1 (0) { 
} 
+0

パーフェクト。私は明らかなものを見落としていることを知っていた。ありがとうございました。 –

0

コンストラクタのプロトタイプ:

void __construct ([ mixed $args [, $... ]]) 

これは__constructの戻り値は破棄され、無用であることを意味なぜなら、オブジェクト自体が返されるからです。

var_dump($checkZero);を実行すると、clas CheckZeroのオブジェクトであることがわかります。

関連する問題