HOME>WEBプログラム覚書>[PHP]値が返ってこない(´;ω;`)->(*´ω`*)解決

[PHP]値が返ってこない(´;ω;`)->(*´ω`*)解決

再帰すると値が返ってこない。

return がなかったからでした。(´;ω;`)コメントくれた人ありがとうございます。

PHP

  1. <?php
  2. class Hoge
  3. {
  4.     public $result = null;
  5.  
  6.     public function __construct()
  7.     {
  8.         return $this;
  9.     }
  10.  
  11.     public function a()
  12.     {
  13.         var_dump($this->b());
  14.         var_dump($this->result);
  15.     }
  16.  
  17.     public function b($flag = true)
  18.     {
  19.         if ($flag) {
  20.             //$this->b(false); return がないから返らない
  21.             return $this->b(false);
  22.         } else {
  23.             $this->result = $flag;
  24.             echo 'ここではBooleanが入ってる:';
  25.             var_dump($flag);
  26.  
  27.             return $flag;
  28.         }
  29.     }
  30. }
  31.  
  32. (new Hoge())->a();
  33. ?>

returnがない場合 の実行結果

ここではBooleanが入ってる:bool(false)
NULL
bool(false)
    

PHP 5.6.21 実行結果

ここではBooleanが入ってる:bool(false)
bool(false)
bool(false)
    

コードがおかしいのかPHPの動作がおかしいのか、これが普通の動きなのか訳がわからなくなってきた。
PHP4では返ってきてた気がするんだけど・・・気のせいでしょうかね。

なんか見落としてるのだろうか・・・

投稿日 2014年9月27日 05:22
カテゴリ PHP
タグ 言語仕様
トラックバック URL http://www.kantenna.com/cgi-bin/mt504/mt-tb.cgi/1355

コメント

(古い記事の指摘ですみません)`$this->b(false);` を return してないからですかね。

コメントする
Name
Email Address
URL