如何在另一个类里面创建公共php类对象? 我有一个名为
的班级page.php文件
以及
Main.php
和
Content.php
我想在page.php类中调用Main.php和Content.php类。这样做的正确方法是什么。 我尝试了这个,但没有工作:(。请帮忙。
<?php
class Page
{
public $main;
public $content;
function __construct()
{
$main=new Main_Model();
$content=new Content_Model();
}
public function Menu()
{
$load_menu=$content->Load_Menu();
...
...
}
}
?>
答案 0 :(得分:1)
我只能假设你是OOP的新手。
但问题在于您需要从全局范围访问变量。 我也假设你正在使用一个提供自动加载的框架,并且这些类实际上是可访问的。
class Page
{
private $main;
private $content;
function __construct()
{
$this->main=new Main_Model();
$This->content=new Content_Model();
}
public function Menu()
{
$load_menu=$this->content->Load_Menu();
...
...
}
}
那应该为你解决所有问题。此外,您应该将变量定义为私有,除非您计划将它们公开以在其他位置用作公共接口。即使这样,也讨论了使用方法访问私有变量。
答案 1 :(得分:0)
这应该可以解决你的问题,我已经改变/修改了一些其他的比特,比如公共/私人变量等等。正如其他人说你错过了$ this-&gt;在你的construct()
中<?php
class Main_Model {
public function Load_Menu() {
return "This is the menu function";
}
}
class Content_Model {
public function Load_Content() {
return "This is the main content function";
}
}
class Page {
private $mainmenu;
private $content;
function __construct() {
$this->mainmenu = new Main_Model();
$this->content = new Content_Model();
}
function Menu() {
return $this->mainmenu->Load_Menu();
}
function Content() {
return $this->content->Load_Content();
}
}
$page = new Page();
echo $page->Menu();
echo "<br />";
echo $page->Content();
?>