如何在另一个类中创建公共php类对象?

时间:2013-12-18 11:18:33

标签: php class object

如何在另一个类里面创建公共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();
        ...
        ...
    }

}
?>

2 个答案:

答案 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();
?>