Bueno, por dejarlo ya, una cosa curiosa, que además me afecta a mí, como programador que no hace lo que debe hacer
.
Qué ocurre si dos traits declaran la misma variable como privada?
Código PHP:
Ver originaltrait uno {
private $h;
function one(){$this->h=1;}
}
trait dos {
private $h;
function two(){$this->h=4;}
}
class prueba
{
use uno,dos;
}
PHP, cuando interpreta este código, da un error, al interpretar el script.
Código PHP:
Ver original<b
>Strict Standards
</b
>: uno and dos
define the same property
($h) in the composition of prueba
. This might be incompatible
, to improve maintainability consider using accessor methods in traits instead
. Class was composed in
<b
>[...][...]</b
> on line
<b
>11</b
>
Ahora bien, en php, uno no está obligado a declarar las variables miembros de la clase.Hay indeseables que tienen esta costumbre.Más concretamente, yo
Si no declaramos la variable:
Código PHP:
Ver originaltrait uno {
function one(){$this->h=1;}
}
trait dos {
function two(){$this->h=4;}
}
Voilá, PHP deja de advertirnos...
Alguen huele a unas cuantas horas de depuración de código?