O que faz usando um cifrão após $ this-> em PHP significa?
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?
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