2011-07-20 34 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

这和这个问题有什么关系? –