我有一个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}}值。
这似乎是一个范围问题。
有什么想法吗? ...
答案 0 :(得分:2)
您没有返回现有的调查。如果它存在,则会错过不返回的if隐式返回null
答案 1 :(得分:1)
您正在使用$ survey来存储checkIfSurveyExists()的结果,但检查$ value是否为真。
public function getExistingSurvey($userId) {
$survey = $this->checkIfSurveyExists($userId)...
if (!$value) {
return $this->createSurvey($userId);
}
}