¿Por qué statement de propiedad implícita en PHP?

Me pregunto por qué el lenguaje PHP permite la statement de propiedades implícitas cuando la mayoría de los lenguajes necesitan definir propiedades dentro de la statement de clase (ver el código a continuación). ¿Hay un uso práctico para este tipo de estilo de encoding?

$user1 = new User(); $user1->name = "Kylie"; echo $user1->name; class User{} 

El caso de uso son objetos de valor

 $a = new stdClass; $a->something = 12; $a->somethingElse = 'Hello World'; myFunction ($a); 

Esto permite crear algunos objetos, que simplemente transportan datos estructurados (algo así como structs en otros idiomas), sin la necesidad de definir una clase para ello.

Otro punto es que, como PHP tiene un tipo débil de todos modos, no hay una razón real para prohibirlo. Si necesitas algo más fuerte, overweite __set()

 public function __set ($propertyName, $value) { throw new Exception("Undefined Property $propertyName"); } 

intente desactivar la supresión de advertencias y esa statement ya no parecerá tan implícita))

Yo diría que esto proviene de que php haya sido y siga siendo poco estricto con sus tipos de datos, y de mantener al menos un poco de compatibilidad hacia abajo para los scripts que se escribieron en una versión anterior de php (<5).