class Score
{
var $score;
var $name;
var $dept;
var $date;
function Score($score, $name, $dept, $date)
{
$this->scores = ($score);
$this->name = ($name);
$this->dept = ($dept);
$this->date = ($date);
}
function return_score(){
return $this->scores;
return $this->name;
return $this->dept;
return $this->date;
}
}
$newscore = new Score("131313","James", "Marketing", "19/05/2008");
echo $newscore->return_score();
上面的代码只回显131313.我刚刚开始学习OO PHP,所以请放心!完全输了,所以任何帮助都会非常感激。
答案 0 :(得分:3)
您只能在每个函数或方法中返回一个值。
在您的情况下,您应该为每个班级成员提供一种方法:
public function getScore() {
return $this->score;
}
public function getName() {
return $this->name;
}
public function getDept() {
return $this->dept;
}
public function getDate() {
return $this->date;
}
评论后编辑:
您还可能需要一个将所有成员作为单个字符串返回的方法:
public function getAll() {
return $this->getScore(). " " .$this->getName() . " " .$this->getDept(). " " .$this->getDate();
}
答案 1 :(得分:2)
您不能在函数中多次返回。你可以返回一个连接的字符串:
return $this->scores.' '.this->name.' '.$this->dept.' '.$this->date;
//added spaces for readability, but this is a silly thing to do anyway...
我不推荐它,因为你要将对象的呈现与其功能混合在一起 - 不要。
我建议制作某种模板(我想你可能想把这些数据制成表格?)。每行看起来像:
<tr>
<td><?php echo $score->name; ?></td>
<td><?php echo $score->scores; ?></td>
<!-- more cells for more properies? -->
</tr>
并在数组中提供您的对象(您知道foreach {}?)。我知道它看起来更啰嗦,但从长远来看,将这些问题分开对你来说会更好。
使用=分配:您不需要围绕被分配事物的括号(通常)。
同时强> 你在运行PHP4吗?你的构造函数表明你是。我建议尽可能地移动到5.21或更高,因为类和对象要好得多。您还可以使用相当有用的__construct方法(而不是使用类命名方法 - 在您的情况下:Score())。这使得继承和扩展更容易,因为您的类不再需要在两个地方记住它们从哪个类扩展。
答案 2 :(得分:1)
首先,你应该使用public,protected或private而不是var
var $score;
var $name;
var $dept;
var $date;
,例如
protected $score;
或带有编码标准前缀的受保护/私有变量和带有下划线的方法,如
protected $_score;
此方法也可称为__construct
function Score($score, $name, $dept, $date)
{
var声明为得分,但您为分数指定了一个变量。我也不明白为什么你在变量周围有括号。
$this->scores = ($score);
$this->name = ($name);
$this->dept = ($dept);
$this->date = ($date);
替换为
$this->score = $score;
$this->name = $name;
$this->dept = $dept;
$this->date = $date;
}
遇到的第一个返回将从函数/方法返回该值。我建议你重新编写为每个变量添加get / set,即getScore()或使用PHP5方法重载__set,__ get和__call。
public function getScore() {
return $this->score;
}
}
您还可以查看设置和获取变量的自动方法Overloading