PHP类中的变量为null

时间:2017-10-22 02:35:27

标签: php

我有一个Survey类,它有多个功能。

在其中一个功能中,我检查调查是否存在 - 如果不存在,请调用其他功能创建并返回新调查。

像这样:

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

另一个功能是这样的:

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

我遇到的问题似乎是$userId变量的范围问题。

当我调用getExistingSurvey()函数时,我要求:

a)返回现有的调查表项 b)ELSE创建一个新的并返回它

函数DOES返回现有的调查,如果它存在并且传递$userId变量就好了。

但是,如果它不存在且我需要使用createSurvey($userId)函数创建一个,那么它会以某种方式发送null的{​​{1}}值。

这似乎是一个范围问题。

有什么想法吗? ...

2 个答案:

答案 0 :(得分:2)

您没有返回现有的调查。如果它存在,则会错过不返回的if隐式返回null

答案 1 :(得分:1)

您正在使用$ survey来存储checkIfSurveyExists()的结果,但检查$ value是否为真。

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