Pessoal, bom dia a todos. Estou estudando o caso das tabelas com a interface ArrayAccess, o autor do livro explica que para a auto-incrementação devemos retornar o valor por referência e não por cópia: Um exemplo abaixo:
<?php
class tabela implements ArrayAccess{
private $tabela = array();
public function offsetExists($index) {
return isset ($this->tabela[$index]);
}
public function &offsetGet($index) { //reparem que acrescentei o símbolo "&" para o valor ser copiado como referência.
return $this->tabela[$index];
}
public function offsetSet($index, $valor) {
return $this->tabela[$index] = valor;
}
public function offsetUnset($index) {
unset ($this->tabela[$index]);
}
}
$tab = new tabela();
if (!isset($tab[42])) {
$tab = 1;
}
echo ++$tab[42];
unset($tab[42]);
?>
o resultado deste script é: Fatal error: Declaration of tabela::offsetGet() must be compatible with that of ArrayAccess::offsetGet() in /var/www/tabela.php on line 3.
Alguém pode me dar uma dica? Já procurei em outros sites e dizem que não é possível incrementar nem por cópia nem por referência. É verdade?
Pergunta
Raphael de Veyrac
Pessoal, bom dia a todos. Estou estudando o caso das tabelas com a interface ArrayAccess, o autor do livro explica que para a auto-incrementação devemos retornar o valor por referência e não por cópia: Um exemplo abaixo:
o resultado deste script é: Fatal error: Declaration of tabela::offsetGet() must be compatible with that of ArrayAccess::offsetGet() in /var/www/tabela.php on line 3.
Alguém pode me dar uma dica? Já procurei em outros sites e dizem que não é possível incrementar nem por cópia nem por referência. É verdade?
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.