从彼此内部调用函数不起作用

时间:2011-07-20 12:56:56

标签: php

这是代码!。没有工作,请帮忙。

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();

5 个答案:

答案 0 :(得分:3)

public $idgen;代替var idgen;

答案 1 :(得分:1)

变化:

var idgen;

使用:

public $idgen = '';

答案 2 :(得分:1)

var is deprecated,您忘记了$中的$idgen

class user {
   private $idgen;

   // ... functions
}

您应该在网络服务器上激活错误报告。您的原始代码会产生错误;你根本看不到它。

答案 3 :(得分:1)

将代码的第二行更改为

private $idgen;
瞧,瞧! :)

BTW值得设置错误报告;它真的有助于调试。

您可以通过编辑php.ini文件或在项目中的某处添加此文件来完成此操作:

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

将此文件放入包含其他设置的文件中,并将其包含在每个页面中。

答案 4 :(得分: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();

为您定义的变量赋予默认值...永远不要假设它们将通过处理类来获得值。