我刚开始使用PHP练习OO编程。最近我遇到了一个问题 我试图在类中声明一个变量,但保持未初始化。稍后在我尝试初始化变量时类的方法内部显示以下错误:
未定义的变量:第6行的C:\ wamp \ www \ sample.php中的a
致命错误:无法访问第6行的C:\ wamp \ www \ sample.php中的空属性
以下是我要执行的代码:
<?php
class Sample{
public $a;
function call($b){
$this->$a = $b;
echo $a;
}
}
$sam = new Sample();
$sam->call(5);
?>
我该如何解决这个问题?
答案 0 :(得分:1)
在函数调用中,$ a不存在。只有$ this-&gt; a(在a之前没有$),这是你的“sam”对象的属性,而$ b是一个输入参数。 另外,当您设置属性时,不得使用$ a。使用$ this-&gt; a。 如果你有一个包含类的属性名的变量,你应该使用$ this-&gt; $ a,这意味着$ this-&gt; asdf,如果$ a ='asdf';
答案 1 :(得分:1)
正确的语法是$this->a
而不是$this->$a