Obtenga y establezca la propiedad (privada) en PHP como en C # sin usar la sobrecarga del método mágico getter setter

Resumen

Código de muestra:

Class People {
    // private property.
    private $name;

    // other methods not shown for simplicity.
}

Directamente hacia adelante. Déjame asumir que$name es unPRIVADO miembro de la clase(o propiedad, variable, campo, llámelo como desee). ¿Hay alguna manera de hacer esto en PHP?

$someone = new People();
$someone->name = $value;
$somevar = $someone->name;

SIN utilizando__get($name) y__set($name, $value).

Antecedentes

Necesitaba comprobar el asignado$value, por lo tanto, simplemente necesito un getter setter como este:

getName();
setName($value);

YNO necesariamente un método mágico getter setter sobrecargado así:

__get($value); 
__set($value, $name);

Dicho esto, simplemente necesito un getter setter. Pero eso esNO lo que quiero. Simplemente no parece orientado a objetos, ya que las personas con lenguaje de escritura estático como C ++ o C # pueden sentir lo mismo que yo.

¿Hay alguna forma de obtener y establecer una propiedad privada en PHP como en C # sin usar la sobrecarga del método mágico getter setter?

Actualizar

¿Por qué no el método mágico?

Hay rumores que circulan por la web de que el método mágico es 10 veces más lento que el método explícito getter setter, aún no lo he probado, pero es bueno tenerlo en cuenta.(Descubrí que no es tan lento, solo 2 veces más lento, vea el resultado del punto de referencia a continuación)

Tengo que rellenar todo en un método enorme si uso el método mágico en lugar de dividirlos en diferentes funciones para cada propiedad como en getter setter explícito.(Este requisito podría haber sido respondido porircmaxell)

Benchmarking de gastos generales de rendimiento

Tengo curiosidad sobre la sobrecarga de rendimiento entre el uso del método mágico y el setter getter explícito, por lo tanto, creé mi propio punto de referencia para ambos métodos y espero que pueda ser útil para cualquiera que lea esto.

Con el método mágico y method_exist:

(hacer clicaquí para ver el código)

Getter cuesta 0.0004730224609375 segundo.Setter cuesta 0.00014305114746094 segundos.

Con setter setter explícito:

(hacer clicaquí para ver el código)

Getter cuesta 0.00020718574523926 segundo.Setter cuesta 7.9870223999023E-5 segundos (eso es 0.00007xxx).

Dicho esto, tanto el setter como el getter con el método mágico y el método existen, solo cuesta 2 veces más que el setter getter explícito. Creo que todavía es aceptable usarlo para un sistema de pequeña y mediana escala.

Respuestas a la pregunta(4)

Su respuesta a la pregunta