我一直在阅读关于 SO 质疑嵌套函数的必要性的答案,但我仍然没有弄清楚 1)为什么我的代码是错误的,以及 2)我如何修复它以使我写的东西工作或更改我的脚本所以它是更容易接受(解析器和有经验的开发人员)。让我提一下,我是 PHP OOP 的新手......
我的想法是我想使用一个我之前在很多其他函数中定义的函数,所以它可以节省我每次重写代码的时间。
那么,这是错误代码,它会引发致命错误“调用未定义函数”,指向我在 getMedia () 中调用 selectMediaIds () 的行...(仅供参考,我故意省略了变量初始化、构造函数、getter、setter等,以使我的帖子更紧凑。)
<?php
class MediaManager {
private function selectMediaIds (MObject $object) {
$medias = array ();
$req = $this -> _db -> query ('SELECT media_idMedia FROM mObject_has_media WHERE mObject_idmObject = ' . $object -> id ());
while ($data = $req -> fetch (PDO::FETCH_ASSOC)) {
$medias[] = $data;
}
$req -> closeCursor ();
return $medias;
}
public function getMedia (MObject $object) {
$medias = array ();
$mediaIds = selectMediaIds ($object);
if ($mediaIds[0] != null) {
foreach ($mediaIds as $id) {
$req = $this -> _db -> query ('SELECT * FROM media WHERE idMedia = ' . $id);
$req -> fetch ();
$medias[] = $req;
//$medias[] = new Media ($req);
}
return $medias;
}
}}?>
谢谢您的回答!