Suponiendo que se tiene una clase base abstracta foo
con __get()
definido, y una clase hija bar
que hereda de foo
con una variable privada $var
, serán los padres __get()
ser llamado al intentar acceder a la privada $var
de fuera de la clase?PHP
Q
PHP
9
A
Respuesta
10
Sí.
<?php
abstract class foo
{
public function __get($var)
{
echo "Parent (Foo) __get() called for $var\n";
}
}
class bar extends foo
{
private $var;
public function __construct()
{
$this->var = "25\n";
}
public function getVar()
{
return $this->var;
}
}
$obj = new bar();
echo $obj->var;
echo $obj->getVar();
?>
de salida:
$ php prueba.php
Padres (Foo) __get() pidió var
4
Sí. __get()
y __set()
(y __call()
para el caso) se invocan cuando se accede a un miembro de datos que no es visible para la ejecución actual.
En este caso, $var
es privado, por lo que acceder a él públicamente invocará el gancho __get()
.
Cuestiones relacionadas
- 1. PHP,()
- 2. PHP array vs PHP Constant?
- 3. php forma acción php self
- 4. Uso posible de PHP PHP
- 5. PHP file_get_contents con php intacto?
- 6. Simular PHP Incluir sin PHP
- 7. PHP "php: // input" vs $ _POST
- 8. Cadena PHP multilínea con PHP
- 9. PHP Eval que evalúa HTML y PHP
- 10. HipHop PHP (PHP fue Hyper por Facebook)
- 11. ¿Cómo crear archivos .php usando php?
- 12. PHP error línea 1: `<?php ?> '
- 13. PHP preg_replace/preg_match vs PHP str_replace
- 14. Cómo duplicar un archivo PHP con PHP
- 15. Para expertos en PHP: ¿Cómo dominar PHP?
- 16. Ejecutar archivo PHP de otro php
- 17. ZipArchive php Class - ¿Está incorporado en PHP?
- 18. PHP vs OO PHP - ¿Cuál usar?
- 19. nginx/apache/php vs nginx/php
- 20. no PHP sitio genera errores de PHP
- 21. Script PHP de carga de archivos PHP
- 22. PHP date_parse_from_format() alternativa en PHP 5.2
- 23. PHP spl_autoload
- 24. PHP Excel
- 25. PHP spl_autoload_register
- 26. PHP & localStorage;
- 27. PHP max_input_vars
- 28. PHP compilado?
- 29. PHP preg_replace \
- 30. PHP: allow_url_include