1、
class animal{
public $name='';
public $age='';
public $color='';
function getlnfo(){
return $this->name;
}
function setlnfo($name){
return $this->name;
}
}
$pig=new animal();
$pig->setlnfo("猪");//传入参数$name,那么成员属性$name现在的值就是“猪”,为何不能直接echo $name 输出name的值呢
echo $name;
?>
2、
class animal{
public $name='';
public $age='';
public $color='';
function getlnfo(){
return $this->name;
}
function setlnfo($name){
return $this->name;
}
}
$pig=new animal();
$pig->setlnfo("猪");
$name=$pig->setlnfo("猪");//用这个方法来赋值,为什么不可以呢?输出为什么会是空白,无输出?
echo $name;
?>
以上两个疑问帮我解答一下,另外还有下面一个疑问。
class animal{
public $name='';
public $age='';
public $color='';
function getlnfo(){
return $this->name;
}
function setlnfo($name){
return $this->name;
}
}
$pig=new animal();
$pig->setlnfo('猪');
$name=$pig->getlnfo();//这个是书籍里边源文件,运行了一下,却不能输出$name,这是什么 原因呢?
echo $name;
?>
求助一个php面向对象编程的问题
答案:3 悬赏:50 手机版
解决时间 2021-03-04 11:44
- 提问者网友:趣果有间
- 2021-03-04 07:44
最佳答案
- 五星知识达人网友:由着我着迷
- 2021-03-04 09:03
少一个赋值过程,实例化传入的参数会被构造函数接收
构造函数
public function __construct($name)
{
$this->name = $name;
}
构造函数
public function __construct($name)
{
$this->name = $name;
}
全部回答
- 1楼网友:行路难
- 2021-03-04 10:43
c++中的setw(n)是设置域宽。 就是你的输出要占多少个字符
比如,int a=80,b=8000, cout<<setw(5)<<a<<b<<endl; 就是“三个空格”+80+8000. 因为a是80只占两个字符,所以前面用3个空格占位。
如果cout<<a<<setw(5)<<b<<endl;就是80+“一个空格”+8000.因为b是8000占四个字符,所以b前用1个空格占位。
不用setw()的话就是正常输出,也就是808000.
懂了吗?
- 2楼网友:深街酒徒
- 2021-03-04 09:32
你第一个和第三个是你的理解错误
类中的变量和类外的变量是2回事
类中的变量不会影响类外的变量
当然,类外的变量,也不会影响类中的变量
除非使用引用&
第二个,你只是提供了参数,但你没有改变类中的变量的值,而你只是返回了类中的变量
而你类中的变量初始为空,你没有改变他的值,那返回当然还是空值
对类中的变量的访问,语法都是 $pig -> name这种格式
当然也可以 animal::name
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯