我有一个名为page的类,它从数据库中提取当前页面的所有数据。当加载当前页面信息时,我需要调用新类并从页面的类中显示show body函数。示例代码…
<?php
//page class
class Page{
var $p;
var $pageline = array();
function __construct(){
global $_GET;
if(!isset($_GET['p'])){
$this->p = 'home';
}
else{
$this->p = mysql_real_escape_string($_GET['p']);
$sql = "select * from pages where friendurl = '{$this->p}'";
if(mysql_query($sql)){
$page = mysql_fetch_assoc(mysql_query($sql));
$this->p = $page['id'];
foreach($page as $key => $val){
if(!is_int($key)){
$this->pageline[$key] = $val;
}
}
}
else{
return false;
}
}
}
}
?>
所以我有var $pageline充满了来自数据库的当前页面的所有信息。我有一个叫做pageClass
的列在主页上,我需要调用这个类并调用showBody函数。
我试了这个,也试了其他方法,但都无法解决。
<?php
$bodyClass = $Page->pageline['friendurl'];
//echo $bodyClass;
$bodyClass->showBody();
?>
这是我一直得到的错误!致命错误:在第136行***************中的非对象上调用成员函数showBody() **
它是一个函数,也是一个对象
请帮忙!
- 为您的属性设置一个作用域,如
public
,private
或protected
。 不要再使用 - 你调用一个方法
showBody()
,它没有在你的类Page
中定义。
mysql_*
函数了,因为它们已经被弃用了。使用PDO
或mysqli_*
代替。不要在构造函数中加载页面数据。创建一个类Page
,它只包含页面数据和一些页面逻辑,创建一个类PageModel
,它从DB加载数据并生成Page
的实例。