2010-01-06 100 views
0

我無法訪問類的變量。PHP類變量訪問問題

我在課堂上有以下功能。

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功能?標題是公共btw。請幫忙!

謝謝你們!

+0

請提供調用方法的代碼。 – 2010-01-06 14:00:49

+0

整個代碼位於www.fearghal.com/Untitled-1.phps 函數名稱分別是SetContent()和getPageContents()...他們調用的函數是questions。 – Fearghal 2010-01-06 14:44:23

回答

0

必須聲明的標題和標題該功能的...我不知道,如果你已經這樣做

看到調用函數

+0

是的,我的課程開始時間爲: class Profile { var $ Heading; 但即使它的feed直接進入函數也需要$ title嗎? – Fearghal 2010-01-06 14:06:24

+0

沒有它的一個匿名變量 – antpaw 2010-01-06 14:08:37

1

的順序如果有「G:S:測試「 這意味着你在setPageTitle之前調用getPageTitle2! 那看起來很正常:我建議先設定然後得到。

4

現在,當我運行的方法$this->setPageTitle("test")我只得到

G: S: test

這聽起來令人難以置信。你確定你沒有運行:

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

PHP - 像大多數編程語言 - 是一種命令式語言。這意味着你做事的順序很重要。當您撥打getPageTitle2時,變量$this->Header未設置。

+1

聽起來可能我.. – 2010-01-06 14:20:27

+0

嗯,我還有其他的功能 // 功能getPageContents(){ $ 這 - > setPageTitle(「測試」(即調用集合函數只有一個) ); } 和其他 功能setContent //運行getPageTitle2 { 回波 '

'.$this->getPageTitle2().'
'; } 所以我不認爲它重要的職能在一個類內的位置。也許getPageContents()必須放在Set()之上? – Fearghal 2010-01-06 14:25:59

+0

@Fergs在課堂上放置該方法並不重要,我可以保證。在調用setPageTitle()之前,您的代碼中某處顯式調用了getPageTitle2() - 沒有隱式或其他自動方式來調用名爲getPageTitle2的方法。 – meagar 2010-01-06 14:30:23

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;