note 11428 rejected from language.oop by sander

From: Date: Sat, 06 Apr 2002 18:59:09 +0000
Subject: note 11428 rejected from language.oop by sander
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-28734@lists.php.net to get a copy of this message
[Nota del editor: Deberias de usar: global $HTTP_POST_VARS; en tu funcion. Objetos/clases son constructos autonomos y encapsulados, asi que variables globales deberan ser importadas explicitamente. Creo que esto es una caracteristica basica de lenguajes OO. Fijate tambien en tu configuracion - Vease: http://www.php.net/manual/en/language.variables.external.php ] 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.....

« previous php.notes (#28734) next »