【问题标题】:What does using a dollar sign after $this-> in PHP mean?在 PHP 中 $this-> 之后使用美元符号是什么意思?
【发布时间】:2008-10-20 05:49:26
【问题描述】:

我对遇到的一些 PHP 语法感到有些困惑。这是一个例子:

$k = $this->_tbl_key;

if( $this->$k)
{
   $ret = $this->_db->updateObject( $this->_tbl, $this, $this->_tbl_key, $updateNulls );
}
else
{
    $ret = $this->_db->insertObject( $this->_tbl, $this, $this->_tbl_key );
}

我的问题基本上是$this->$k 是什么意思?我想这可能意味着成员变量的名称是 $this->_tbl_key 中的任何内容,但它是如何工作的呢?是否可以在运行时向类添加成员变量?

【问题讨论】:

    标签: php syntax oop


    【解决方案1】:

    它会查找“k”的任何值,并将其视为变量名。这两个样本是一样的:

    echo ($obj->myvar);
    
    ####
    
    $k = "myvar";
    echo ($obj->$k);
    

    【讨论】:

    • 好的,这就是我想开始的 - 然后我需要找到该变量的来源。
    【解决方案2】:

    我相信这是variable variables的情况。

    【讨论】:

    • 其实不然。约翰·米利金的回答是正确的。
    • 约翰的回答更完整,但保罗是正确的。这是一个变量命名的变量。如果您想更具体地考虑 OOP 的使用,您也可以将其称为变量属性(在 Paolo 的链接中进行了描述)。
    猜你喜欢
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-22
    • 1970-01-01
    • 2012-01-10
    • 2018-08-08
    相关资源
    最近更新 更多