永发信息网

求助一个php面向对象编程的问题

答案:3  悬赏:50  手机版
解决时间 2021-03-04 11:44
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;
?>
最佳答案
少一个赋值过程,实例化传入的参数会被构造函数接收
构造函数
public function __construct($name)
{
    $this->name = $name;
}
全部回答
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回事 类中的变量不会影响类外的变量 当然,类外的变量,也不会影响类中的变量 除非使用引用& 第二个,你只是提供了参数,但你没有改变类中的变量的值,而你只是返回了类中的变量 而你类中的变量初始为空,你没有改变他的值,那返回当然还是空值 对类中的变量的访问,语法都是 $pig -> name这种格式 当然也可以 animal::name
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
吃降压药后,多久可以喝茶?
桂柳路/独静路(路口)地址有知道的么?有点事
我当导游的作文300字(淮安)
宿迁宿城区园博会作文!300-500字左右!我是宿
凤阳县华谊粮油食品有限公司在哪里啊,我有事
汇编语言程序设计:从DOS到Windows 张雪兰 课
利用植物根,茎,叶,花,果,种子怎样做画
白河水暖·卫浴怎么去啊,有知道地址的么
五岁的孩子看什么书
JB-QB-TS100火灾报警器系统故障是怎么回事
京成一品欢乐烤场湘阴店这个地址在什么地方,
广外南商修改wifi密码
怎样让孩子由逃学厌学变为好学 到会学
粤语说的笨拆头什么意思
怎样避免晚上起夜上厕所?
推荐资讯
除消防安全重点单位外其他单位应当每()开展
爱信变速箱油多少钱一桶
后天美女结局是什么
北林区绥化919酒类直供在哪里啊,我有事要去
金岛足浴在哪里啊,我有事要去这个地方
步步高vivox1st的手机能下载什么的自动抢红包
off灯常亮黄灯是什么故障
华联超市(新叶店)地址有知道的么?有点事想过
西班牙语 de la Mancha
在农田中,对田鼠有直接影响的生物因素是B(1
肉类用开水泡能泡去多少磷
不是淘宝卖家就不能用小微贷
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?