note 11428 added to Classes and Objects
| From: | strasbg at ole dot com | Date: | Tue, 20 Feb 2001 17:20:11 +0000 |
| Subject: | note 11428 added to Classes and Objects | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-11313@lists.php.net to get a copy of this message | ||
Mas sobre objetos y clases:
Despues de dar trescientas mil vueltas a un trozo de codigo escrito para PHP ver 4.0.4pl1 he llegado
a la conclusion de que si hacemos referencia a variables globales como HTTP_POST_VARS desde dentro
de una clase, una instancia de esta será incapaz de usarlas, es decir, las variables globales no
estaran en su contexto. Por ejemplo, supongamos la siguiente clase:
class foo{
var $foovar1;
var $foovar2;
....
funcion foofuncion1(){
....CODE....
if(isset($HTTP_POST_VARS))
....CODE....
}
y ahora supongamos que hacemos uso
de la clase en un script diferente:
<?php
include("foo.class");
$foo=new fooclass();
$foo->foofunction1();
?>
misteriosamente, la funcion foofuncion1 no podrá funcionar correctamente ya que
no existe el array HTTP_POST_VARS para esa instancia de fooclass.
Creo que más que una nota deberia ser un error, ya que de esto se deduce que el codigo incluido
mediante una directiva include (o require, tambien lo probe) no hereda el contexto del código que
la incluye (en este caso el script desde el que si es posible
hacer referencia al array HTTP_POST_VARS).
Saludos desde Cordoba
Gracias Jesus por tu indicacion, aunque se ve que no me entendieron.....
http://www.php.net/manual/en/language.oop.php