在PHP中的另一个函数内使用函数

时间:2013-03-22 20:24:22

标签: php function

我在一个名为website的类中有两个函数。这两个函数是checkStatus和killPage。

函数killPage是关于使用简单的简单样式而不是完整的单词文本。 函数checkStatus应该在代码中使用killPage,但它不会让我使用它。

下面是代码:

class website 
{
    function killPage($content)
    {
        die("

            <h1>" . Settings::WEBSITE_NAME ." encountered an error</h1>

            " . $content . "

            ");
    }

    function checkStatus(){
        if(Settings::STATUS == 'M')
        {

            $website->killPage('We are in maintence');
        }
        if(Settings::STATUS == 'O')
        {
        }
        if(Settings::STATUS == 'C')
        {
            $website->killPage('We are closed');
        }
    }
}

$website = new Website;

我得到的错误:

  

未定义的变量:网站&amp;&amp;   调用一个成员函数killPage()   非对象

3 个答案:

答案 0 :(得分:2)

$this是指类的当前实例,而不是$classname

答案 1 :(得分:1)

$website更改为$this

class website 
{
    function killPage($content)
    {
        die("

            <h1>" . Settings::WEBSITE_NAME ." encountered an error</h1>

            " . $content . "

            ");
    }

    function checkStatus(){
        if(Settings::STATUS == 'M')
        {

            $this->killPage('We are in maintence');
        }
        if(Settings::STATUS == 'O')
        {
        }
        if(Settings::STATUS == 'C')
        {
            $this->killPage('We are closed');
        }
    }
}

答案 2 :(得分:0)

问题在于:

function checkStatus(){
    if(Settings::STATUS == 'M')
    {
        Settings::STATUS == 'M';
        $website->killPage('We are in maintence');
    }

您正在取消引用尚未进入范围的$website

在这种情况下,$website是一个全局变量,您需要将其纳入范围:

function checkStatus() {
    global $website;

    if(Settings::STATUS == 'M')

编辑或其他人指出,由于checkStatus是会员功能,您应该使用$this