• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

$this->name和$this->$name的区别,我糊涂了!

php 搞代码 4年前 (2022-01-23) 65次浏览 已收录 0个评论
文章目录[隐藏]

在set和get方法中使用的是$this->$name,我一看就蒙了,平时给属性赋值$this->name=’sss’; 求详细介绍和解释!!!!!

回复讨论(解决方案)

后者是变量
前者是变量的变量

$name=aaa;
$this->$name 等於 $this->aaa;
$this->aaa是??量

class a{ private $name; $this->name; private $$name; $this->$name;}

我明白了,发完帖子之后想通了,其实就是传递进来一个变量,实际上我要给变量的变量赋值。

<?php 	         class classname{		private $attribute;						function __get($name)		{			echo "__get"."<br />";			return $this->$name."<br />";		}		function __set($name,$value)		{			echo "__set"."<br />";			$this->$name=$value;					}	}	$a = new classname;	$a->attribute = 90;		echo $a->attribute;		?>

此时输出:
__set
__get
90
但是把类外语句改为:
$a->$attribute = 90;
echo $a->$attribute;(或echo $a->attribute;)
就只输出:
__set
__get

何解呢?

PHP code?12345678910111213141516171819<?php class classname{ private $attribute; function __ge

4本文¥来源gao!%daima.com搞$代*!码$网9

搞代gaodaima码

t($name) { echo “__get”.”
“……

噢噢~~~明白了….奇怪,也是再回帖之后再想想就明白了。

对于5楼同样不解


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:$this->name和$this->$name的区别,我糊涂了!
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址