我在该类的一个函数中使用我的类中的参数时遇到了麻烦。
我有一个叫做公司的课程:
class company {
var $name;
function __construct($name) {
echo $name;
}
function name() {
echo $name;
}
}
$comp = new company('TheNameOfSomething');
$comp->name();
当我实例化它(从倒数第二行开始)时,构造魔术方法工作正常,并回显“TheNameOfSomething”。但是,当我调用name()函数时,我什么都没得到。
我做错了什么?任何帮助是极大的赞赏。如果您需要任何其他信息,请询问!
感谢
-Giles
http://gilesvangruisen.com/
答案 0 :(得分:12)
您需要使用$ this关键字设置class属性。
class company {
var $name;
function __construct($name) {
echo $name;
$this->name = $name;
}
function name() {
echo $this->name;
}
}
$comp = new company('TheNameOfSomething');
$comp->name();
答案 1 :(得分:1)
在任一方法中使用$ name时,$ name变量的范围仅限于创建它的函数。其他方法或包含类无法读取变量或甚至不知道它存在,所以你必须使用$this->
前缀设置类变量。
$this->name = $name;
这允许值是持久的,并且可用于类的所有函数。此外,变量是公共的,因此任何脚本或类都可以读取和修改变量的值。
$comp = new company();
$comp->name = 'Something';
$comp->name(); //echos 'Something'