PHP报错:调用未定义函数checkLocationExists,求排查方案
问题原因与解决方法
嘿,我一眼就瞅到问题啦!你在searchPosts方法里调用checkLocationExists的时候,忘了用$this->来引用当前类的成员方法了。
在PHP的类中,调用自身的方法必须通过$this关键字,否则PHP会把它当作全局函数去查找——可你的checkLocationExists是Functions类的成员方法,不是全局函数,自然就会报“未定义”的错误啦。
修改后的关键代码片段:
public function searchPosts($rawLocation){ $db = $this -> db; $locationArr = explode(",", $rawLocation); $formattedCity = $locationArr[0]; $formattedState = $locationArr[1]; echo 'String parameters for getLocationID are: '.$formattedCity.','.$formattedState.'.'; // 核心修改:用$this->调用类的成员方法 if ($this->checkLocationExists($formattedCity, $formattedState)){ $locationID = $db -> getLocationID($formattedCity, $formattedState); echo $locationID.'...is the locationId returned by "$db >getLocationID()"'; $response = $db -> getPostsByLocation($locationID); return json_encode($response); }else { $response['message'] = 'Location not in database, select one from the AutoComplete drop down.'; return json_encode($response); // 顺便补上你漏写的return,否则这个分支不会返回内容哦 } }
你排查了括号、分号这些细节,却漏掉了类方法调用的基础语法,这种“当局者迷”的情况太常见啦~
内容的提问来源于stack exchange,提问作者user5932019
相关产品推荐
相关产品推荐

