我通过本教程: http://www.killerphp.com/tutorials/object-oriented-php/php-objects-page-3.php开始oop php问题:做构造函数代替getter?
起初,他已经创建的类setter和getter方法:
<?php
class person{
var $name;
function set_name($new_name){
$this->name=$new_name;
}
function get_name(){
return $this->name;
}
}
php?>
,然后创建对象和回声结果:
<?php
$stefan = new person();
$jimmy = new person();
$stefan ->set_name("Stefan Mischook");
$jimmy ->set_name("Nick Waddles");
echo "The first Object name is: ".$stefan->get_name();
echo "The second Object name is: ".$jimmy->get_name();
?>
按预期工作,我明白了。
接着,他介绍了构造函数:
class person{
var $name;
function __construct($persons_name) {
$this->name = $persons_name;
}
function set_name($new_name){
$this->name=$new_name;
}
function get_name(){
return $this->name;
}
}
,并返回像这样:
<?php
$joel = new person("Joel");
echo "The third Object name is: ".$joel->get_name();
?>
这是所有罚款和有意义。
然后我试图把两者结合起来,并得到一个错误,所以我很好奇 - 是一个构造函数总是代替“get”函数吗?如果你有一个构造函数,你是否总是需要在创建一个对象时包含一个参数?
给出错误:
<?php
$stefan = new person();
$jimmy = new person();
$joel = new person("Joel Laviolette");
$stefan ->set_name("Stefan Mischook");
$jimmy ->set_name("Nick Waddles");
echo "The first Object name is: ".$stefan->get_name();
echo "The second Object name is: ".$jimmy->get_name();
echo "The third Object name is: ".$joel->get_name();
?>
很酷。我明白这一点。谢谢! – Joel 2010-05-15 02:40:57