2017-05-19 5 views
0

私はphpを初めて使いました。このエラーはかなり頻繁に見られますが、どのようにこの問題を解決するために、誰かが私にこの方法でこれを修正する方法を手伝ってもらえますか? __toString()メソッド内で何かが例外が発生したため、このエラーが発生し エラー:メソッド__toString()は例外をスローしてはいけません。エラー:メンバ関数の呼び出しgetCode()on null

/** 
* @return string 
*/ 
public function __toString(): string 
{ 
    return (string)$this->name .' - '. $this->surname .' - '. $this->getSubject()->getCode(); 
} 

はあなたに

+0

'$ this-> getSubject()'の結果は 'NULL'ですなぜですか?知りません。 –

答えて

1

ありがとう:

この

は私の__toString()メソッドです。

エラーgetSubject()nullの値を返した後、null->getCode()を呼び出すと例外がスローされます。より良い解決策は:

public function __toString(): string 
{ 
    $subj = $this->getSubject(); 
    $code = is_null($subj) ? "" : $subj->getCode(); /* instead of empty string can be any value you want when subject is missing */ 

    return (string)$this->name .' - '. $this->surname .' - '. $code; 
} 
関連する問題