Pergunta

Estou um pouco confuso com alguns PHP sintaxe eu me deparei. Aqui está um exemplo:

$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 );
}

A minha pergunta é basicamente o que faz $this->$k média? Achei que poderia significar a variável de membro que atende pelo nome de tudo o que está em $this->_tbl_key, mas como é que isso funciona? É possível adicionar variáveis ??de membro de uma classe em tempo de execução?

Foi útil?

Solução

Ele vai olhar para cima qualquer que seja o valor de "k" é, e tratá-lo como um nome de variável. Estas duas amostras são os mesmos:

echo ($obj->myvar);

####

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

Outras dicas

Eu acredito que é um caso de variáveis ??variáveis ??.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top