【问题标题】:PHP Class arguments in functions函数中的 PHP 类参数
【发布时间】:2010-12-09 18:41:54
【问题描述】:
我在该类的一个函数中使用我的类的参数时遇到问题。
我有一个班级叫公司:
class company {
var $name;
function __construct($name) {
echo $name;
}
function name() {
echo $name;
}
}
$comp = new company('TheNameOfSomething');
$comp->name();
当我实例化它时(倒数第二行),construct magic 方法工作正常,并回显“TheNameOfSomething”。但是,当我调用 name() 函数时,我什么也得不到。
我做错了什么?任何帮助是极大的赞赏。如果您需要任何其他信息,请尽管询问!
谢谢
-贾尔斯
http://gilesvangruisen.com/
【问题讨论】:
标签:
php
class
function
arguments
【解决方案1】:
您需要使用 $this 关键字设置类属性。
class company {
var $name;
function __construct($name) {
echo $name;
$this->name = $name;
}
function name() {
echo $this->name;
}
}
$comp = new company('TheNameOfSomething');
$comp->name();
【解决方案2】:
在任一方法中使用 $name 时,$name 变量的范围仅限于创建它的函数。其他方法或包含的类无法读取该变量,甚至不知道它存在,所以你必须使用 $this-> 前缀设置类变量。
$this->name = $name;
这允许值是持久的,并且可用于类的所有函数。此外,该变量是公共的,因此任何脚本或类都可以读取和修改该变量的值。
$comp = new company();
$comp->name = 'Something';
$comp->name(); //echos 'Something'