2011-07-20 74 views
-2

這裏的代碼!沒有工作,請幫助。呼叫功能從對方內部不起作用

class user{ 
var idgen; 

function uid(){ 
    //return uniqid (rand(), true); 
    return "123"; 
    } 

function gen() { 
    $this->idgen=$this->uid(); 
      //$this->idgen=udi();//even this dint work 
    } 

function pint() { 
    echo "The id is :".$this->idgen; 
    } 
} 

$use= new user(); 
$use->gen(); 
$use->pint(); 
+2

什麼是錯誤信息? – JJJ

+3

請發佈程序的輸出,如果沒有做任何事情,請輸出「不輸出」。 – jefflunt

+2

「不工作」不是問題描述。 –

回答

1

更改代碼的第二行

private $idgen; 

,瞧! :)

順便說一句,它值得設置錯誤報告;它確實有助於調試。

您可以通過編輯php.ini文件或在項目中添加這個地方做:

ini_set('error_reporting', E_ALL | E_STRICT); 
ini_set('display_errors', 'On'); // <-- change this to off when live. 

與其他設置的文件將這個並將其包含在每一頁。

+0

Lol .. yup,working.Thanks –

+0

謝謝大家,我正試着讓firephp和firephp一起工作。但是它仍然能夠正常工作。這將會縮短我的調試時間4肯定。謝謝! –

3

public $idgen;而不是var idgen;

+0

我想$ idgen是一個私人會員! –

+1

@Php:然後製作一個。 –

+0

做了它,現在工作。知道var已被棄用。 –

1

變化:

var idgen; 

有了:

public $idgen = ''; 
+0

我想讓$ idgen成爲私人會員! –

+0

@Php:然後製作一個。 –

+0

@Php:沒有問題。只需使用'private $ idgen;'。並確保你在你的問題中包含那個小問題以獲得適當的幫助。 :-) –

1

var is deprecated,你忘了$$idgen

class user { 
    private $idgen; 

    // ... functions 
} 

您應該在您的網絡服務器上激活錯誤報告。您的原始代碼將產生錯誤;你只是看不到它。

+0

@Php:你知道原始代碼被破壞的原因嗎? –

+0

Yeah.M猜想Missing $導致錯誤:( –

+0

@Php:是的,即使你不寫'$ this - > $ idgen',成員變量仍被稱爲'$ idgen',但$ this - > idgen'。 –

0

首先製作一個__constructor函數,並向var定義中添加一個「$」。

class user{ 

public $idgen; 

function __constructor(){ 
    $this->gen(); 
} 

function uid(){ 
    //return uniqid (rand(), true); 
    return "123"; 
} 

function gen() { 
    $this->idgen=$this->uid(); 
    //$this->idgen=udi();//even this dint work 
} 

function pint() { 
    echo "The id is :".$this->idgen; 
} 
} 

$use= new user(); 
$use->pint(); 

給你定義的變量設置一個默認值......不要以爲他們會通過類的處理給出一個值。

+0

你爲什麼改變'gen()'來通過構造函數運行?這是有道理的,但它與問題完全正交。 –

+0

給$ idgen一個預定義的值。 – ixasilent

+0

這和這個問題有什麼關係? –