PHPMailer中看到的的php函数中使用$this->$value的问题,重点是后面那个美元符

641202944 发布于 2012/08/13 11:26
阅读 906
收藏 0

今天在class.phpmailer.php的507行看到这一句代码:array_push($this->$kind, array($address, $name));

对于里面的$this->$kind我就不理解了,这个kind不是成员变量,怎么有这种用法?我试着写一个$this->$aa就报错了,但是这个$this->$kind却可以重新赋值或输出;    

研究了一下发现这段代码所在函数有三个参数$kind,$address,$name,使用$this->$address或者$this->$name也是不会报错的,但是比如$this->$name的值和$name的值是没有关系的,我以前从来没有接触过这方面知识,又没人能说明下。

加载中
0
老陌
老陌
有种东西叫可变变量, 例如:
$a = 'b';
$b = '111';
echo $$a;  // 输出111

641202944
641202944
哦,原来给a赋的值“b”是有意义的,没反应过来。这个倒是可以理解了。谢谢你了
641202944
641202944
我这个问题和这个有关系吗?不过这个可变变量我也没遇到过,太神奇了
0
傅小黑
傅小黑

$this->$key是动态使用方法

$key = 'aaa';

$this->$key 等价于 $this->aaa;

如果$key是无效值,比如空值,那会提示错误的

641202944
641202944
哈哈,回头看看上面的又理解你的意思了,谢谢了!
641202944
641202944
能详细介绍下吗?我试过貌似写$key="value";并不能使用$this->$value调用,给$this->$value赋值也要确保$value为当前函数的参数。
返回顶部
顶部