从彼此内部调用函数不起作用
Posted
技术标签:
【中文标题】从彼此内部调用函数不起作用【英文标题】:Calling functions from within each other not working 【发布时间】:2011-10-09 09:22:08 【问题描述】:这是代码!。不工作,请帮助。
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();
【问题讨论】:
请同时发布程序的输出,如果它什么也没做,请发布“无输出”。 “不工作”不是问题描述。 它是一个网页。我无法输出任何内容。上面的代码在 中 【参考方案1】:public $idgen;
而不是var idgen;
【讨论】:
我希望 $idgen 成为私人会员!【参考方案2】:变化:
var idgen;
与:
public $idgen = '';
【讨论】:
我希望 $idgen 成为私人会员! @php:没有问题。只需使用private $idgen;
。并确保在您的问题中包含那个小问题以获得适当的帮助。 :-)【参考方案3】:
var
is deprecated,而你忘记了$idgen
中的$
:
class user
private $idgen;
// ... functions
您应该在您的网络服务器上激活错误报告。您的原始代码将产生错误;你只是看不到它。
【讨论】:
@Php:你明白你原来的代码被破坏的原因了吗? Yeah.M 猜测 Missing $ 导致 ERROR :( @Php:没错。成员变量仍然叫$idgen
,即使你写的不是$this->$idgen
而是$this->idgen
。
是的。处理同样的问题 b4.再次重复同样的错误。希望打开错误报告,我所有的愚蠢错误都应该在未来得到解决。【参考方案4】:
将代码的第二行更改为
private $idgen;
瞧! :)
顺便说一句,值得设置错误报告;它确实有助于调试。
您可以通过编辑 php.ini
文件或将其添加到项目中的某个位置来实现:
ini_set('error_reporting', E_ALL | E_STRICT);
ini_set('display_errors', 'On'); // <-- change this to off when live.
将其与其他设置一起放入文件中,并将其包含在每个页面中。
【讨论】:
非常感谢。正试图让 firephp 与 firephp 一起工作。但从来没有成功过。这肯定会缩短我的调试时间 4。非常感谢!!..【参考方案5】:首先制作一个__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();
给你定义的变量一个默认值...永远不要假设它们会通过类的处理被赋予一个值。
【讨论】:
为什么将gen()
改为通过构造函数运行?这是有道理的,但它与问题完全正交。
给 $idgen 一个预定义的值。
这和这个问题有什么关系?以上是关于从彼此内部调用函数不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在控制器内部调用函数时,codeigniter 404 函数不起作用
SignalR 使用 GlobalHost.ConnectionManager.GetHubContext 从外部集线器调用客户端方法不起作用。但是从集线器内部调用确实