Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com um problema ao migrar o sistema para a versão 5.2.5 PHP. Neste respeito montei dois exemplos para testes. Se funcionar com alguém mantendo o atributo private que é a forma correta, gostaria de que passa-se como está a configuração do servidor se for configuração de servidor senão o que foi feito para solucionar.
1 Exemplo sem solução.
<?php
class Modelo {
//Método construtor
public function __construct() {
echo "Construtor:<br />";
echo "<pre>";
print_r(array_keys(get_object_vars($this)));
echo "</pre>";
}
}
class Teste extends Modelo {
//Atributo
private $atributo1;
private $atributo2;
private $atributo3;
public function setAtributo1() {
parent::$this->Modelo();
}
public function setAtributo2() {
parent::$this->Modelo();
}
public function setAtributo3() {
parent::$this->Modelo();
}
}
$objeto = new Teste();
?>
Resultado da versão 5.2.5
Construtor:
Array
(
)
Resultado da versão 5.2.3
Construtor:
Array
(
[0] => atributo1
[1] => atributo2
[2] => atributo3
)
2 Exemplo
<?php
class Modelo {
//Método construtor
public function __construct() {
echo "Construtor:<br />";
echo "<pre>";
print_r(array_keys(get_object_vars($this)));
echo "</pre>";
}
}
class Teste extends Modelo {
//Atributo
//private $atributo1;
//private $atributo2;
//private $atributo3;
public $atributo1;
public $atributo2;
public $atributo3;
public function setAtributo1() {
parent::$this->Modelo();
}
public function setAtributo2() {
parent::$this->Modelo();
}
public function setAtributo3() {
parent::$this->Modelo();
}
}
$objeto = new Teste();
?>
Resultado da versão 5.2.5 usando no atributo public assim funciona.
Construtor:
Array
(
[0] => atributo1
[1] => atributo2
[2] => atributo3
)
By Sandro
Carregando comentários...