質問: 関数内で、特定の処理に引っかかれば、「return」で値を返し、そうでなければ何も返さない、といったことは可能でしょうか? ``` NULL }」と「Null」が配列に格納されてしまいます。 仮に、ifの条件分岐の処理に引っかからなかった場合は、そのままNULLも何も返さなくしたいと思っているのですが、そのような方法を分からずご質問させて頂きました。 どなたかアドバイス頂けましたら幸いです。 よろしくお願いします
回答: 何も返さないという考え方がおかしい nullかどうかを判断すればよいだけ ``` $err = []; function test($a){ return ($a === 1)?'ok':null; } $a = 2; if(!is_null($b=test($a))) $err[] = $b; var_dump($err); $a=1; if(!is_null($b=test($a))) $err[] = $b; var_dump($err); ``` $errの表記がおかしかったので調整 追記 == return を期待しないならtestを代入することをやめてこうする手もあります ``` $err=[]; function test($a,&$err){ if($a === 1) $err[]='ok'; } $a = 2; test($a,$err); var_dump($err); $a = 1; test($a,$err); var_dump($err); ```