PHP类变量访问问题

时间:2010-01-06 13:57:31

标签: php class

我无法访问类'变量。

我在课堂上有以下功能。

class Profile { 

    var $Heading;

    // ...

    function setPageTitle($title)
    {
        $this->Heading = $title;
        echo 'S: ' . $this->Heading;
    }

    function getPageTitle2()
    {       
        echo 'G: ' . $this->Heading;
        return $this->Heading;
    }

// ...
}

现在,当我运行方法$this->setPageTitle("test")时,我只得到

G: S: test

getPageTitle2功能出了什么问题?标题是公共顺便说一下。请帮忙!

谢谢你们!

4 个答案:

答案 0 :(得分:4)

  

现在,当我运行方法$this->setPageTitle("test")时,我只得到

     

G: S: test

这听起来难以置信。你确定你没跑:

$this->getPageTitle2();
$this->setPageTitle("test");

PHP - 像大多数编程语言一样 - 是一种命令式语言。这意味着你做事的顺序很重要。您调用$this->Header时未设置变量getPageTitle2

答案 1 :(得分:1)

如果你有“G:S:test” 这意味着你在setPageTitle之前调用了getPageTitle2! 那看起来很正常:我建议先设置然后得到。

答案 2 :(得分:0)

你必须从功能中声明标题和标题......我不知道你是否已经这样做了

查看调用函数的顺序

答案 3 :(得分:0)

class Profile { 

var $Heading;

// ...

function setPageTitle($title)
{
    $this->Heading = $title;
    echo 'S: ' . $this->Heading;
}

function getPageTitle2()
{       
    echo 'G: ' . $this->Heading;
    return $this->Heading;
}

// ...
}

我猜你在做这样的事情:

$profile = new Profile();
$profile->setPageTitle("test");
$profile->getPageTitle2();

并且这将导致以下输出:

S: testG: test

如果您echo $profile,您将获得

test

那么您认为问题是什么,或者您想要完成的是什么?

我也可能将$Heading声明为

private $heading;