2017-10-22 2 views
0

私はSurveyクラスに複数の機能があります。PHPクラスの変数がnullになる

機能の1つでは、調査が存在するかどうかをチェックし、そうでない場合は他の関数を呼び出して新しい調査を作成して返します。

このように:

public function createSurvey($userId) { 
    somecode... 
    return $surveyId; 
} 

他の機能は次のようなものです。私はに実行しています

public function getExistingSurvey($userId) { 
    $survey = $this->checkIfSurveyExists($userId)... 
    if (!$survey) { 
     return $this->createSurvey($userId); 
    } 
} 

問題、$userId変数とスコープの問題のようです。既存の調査を返さない新しいものを作成して

機能をそれを返す)ELSE

a)は、既存の調査項目
bを返します:

私はgetExistingSurvey()関数を呼び出す

は、私がのために求めています、それが存在し、 $userId変数を渡すだけです。

しかし、それが存在せず、createSurvey($userId)機能を持つものを作成する必要がある場合は、何とかnullの値を$userIdに送信します。

これは範囲の問題のようです。

アイデア? ...

+0

おそらくcheckIfSurveyExistsのnullを$ userID varに割り当てていますか?私はあなたが与えた例でそれを再作成することができませんでした。 –

答えて

2

あなたは既存のアンケートを返信しません。それが存在する場合、暗黙のうちにnullを暗黙的に返すものが見つからない場合はnullを返します

+0

それは私が昨日彼に言ったことです:/ – Wranorn

+0

あなたは彼が真実と比較していると言いましたか?彼らは同じではありません – exussum

+0

2番目のコメント "... getExistingSurvey()は暗黙的にNULLを返す測量が設定されていない限り何も返しません。" – Wranorn

1

$ surveyを使用してcheckIfSurveyExists()の結果を保存しますが、$ valueをtrueにチェックしています。

public function getExistingSurvey($userId) { 
    $survey = $this->checkIfSurveyExists($userId)... 
    if (!$value) { 
     return $this->createSurvey($userId); 
    } 
} 
+0

ええ、それは愚かだった。正直なところ、ランタイムコードにはそのエラーはありません。サイトを置くとき、私はそれを間違って入力しました。私はそれが簡単だったと思う!他のアイデア? ...(私はちょうど元のポストを修正しました - それを指摘してくれてありがとう) –

+0

Theresいくつかのもの、...完全なコードなしで、暗闇の中で突き刺す。例えばgetExistingSurvey()は暗黙的にNULLを返すsurveyが設定されていない限り何も返しません。 – Wranorn

+0

createSurvey:useridが渡され、surveyIdが返されたコードのみ... surveyIDがどのように決定されていますか?この関数は、調査のIDを返さない調査を作成することを意味します。 – Wranorn

関連する問題