我正在努力调用数据库中的脚本,如果它们与包含的函数匹配。 就在这里我现在正在使用: 3调用页面内容的功能:
public function ViewPageDetails() {
global $db;
$query = <<<SQL
SELECT title,body
FROM inv_pages
WHERE id = :getid
SQL;
$resource = $db->db->prepare( $query );
$resource->execute( array (
':getid' => $_GET['id'],
));
foreach($resource as $row){
$this->title = $row['title'];
$this->body = $row['body'];
}
}
public function ViewPageTitle() {
self::ViewPageDetails();
return $this->title;
}
public function ViewPageBody() {
self::ViewPageDetails();
if( is_callable($this->body) )
$this->body();
else {
echo $this->body;
}
}
我认为这样可以调用函数,但会抛出错误:
Fatal error: Call to undefined method pages::body()
现在我所拥有的功能可以在另一方面起作用
public function testcall() {
global $db;
$query = <<<SQL
SELECT body
FROM inv_pages
WHERE id = :getid
SQL;
$resource = $db->db->prepare( $query );
$resource->execute( array (
':getid' => $_GET['id'],
));
foreach($resource as $row){
if( is_callable($row['body']) )
$row['body']();
else {
echo $row['body'];
}
}
}
所以$this->body()
是一种非法的方法,但$row['body']()
完全没问题。如果有人知道使用$this->body()
代替$row['body']()
的方式,那么任何输入都会受到赞赏。如果您需要澄清,请询问。我想我把这个问题搞得很好。