【发布时间】:2016-05-08 06:11:29
【问题描述】:
我是一名二年级 IT 学生,刚开始使用 PHP 中的 OOP,我真的很难掌握它,我多年来一直以程序方式编码,所以请理解切换到 OOP非常具有挑战性,而且我还没有看到它的好处,反正我只需要得到它。
根据上面的问题,我用上面的代码来了,我把它调整到无穷大,我规定的书也不是很有帮助
代码
class Registration{
private $user_type;
private $user_name;
function __construct($user_type, $user_name){
$this->user_type=$user_type;
$this->user_name=$user_name;
}//constructor
function setUser($user_type, $user_name){
if($user_type == "admin"){
$user_name = "Peter";
$msg = "Hi administrator ".$user_name;
}
else if($user_type="member"){
$user_name = "Ntubele123!";
$msg = "Hi member ".$user_name;
}
}//function
function getUser(){
return $this->user_type;
}//function getter
}//class
$userInfo = new Registration($user_type, $user_name);
$user = $userInfo->setUser("admin", "Peter");
$user = $userInfo->getUser();
我的问题
- 我怀疑上面的代码有很多问题,如果有人可以让我知道我哪里出了问题以及我应该考虑改变什么,请记住初学者友好,它将不胜感激。
错误
未定义的变量 user_type & user_name
【问题讨论】:
-
在以
$userInfo = new ...开头的行之前,您需要创建要传递给new Registration($user_type, $user_name的$user_type和$user_name变量..$user_type = $user_name = '';应该这样做 -
您的 setter 方法没有设置任何内容。它忽略了传入的用户名,并始终显示对 Peter 或 Ntubele123 的问候。
-
@Barmar 它什么都没有显示,当将对象初始化为
new Registration("admin", "Peter")aaaarrrrrggggghhhh 时,只会在屏幕上打印admin -
我说的是
setUser,它应该将用户设置为参数中给出的名称,但只是显示一条消息。