Foros del Web » Programando para Internet » PHP »

Variables Explícitas

Estas en el tema de Variables Explícitas en el foro de PHP en Foros del Web. Estaba leyendo el manual de PHP en http://www.php.net/manual/es/languag...e-juggling.php y según lei, se puede utilizar cualquier tipo de variable sin ser declaradas con anterioridad. En ASP ...
  #1 (permalink)  
Antiguo 02/05/2004, 20:15
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 8 meses
Puntos: 7
Variables Explícitas

Estaba leyendo el manual de PHP en http://www.php.net/manual/es/languag...e-juggling.php y según lei, se puede utilizar cualquier tipo de variable sin ser declaradas con anterioridad.

En ASP se utiliza Option Explicit para solucionar este problema. Tal vez, el manual me quería decir otra cosa, o no entendí bien. Creo que tener que declarar las variables es algo importante ya que nos ahorran tiempo al momento de depurar nuesta aplicación y creo que en PHP sería mucho más importante, ya que las variables son sensitive case.

Entonces mi pregunta es: Se puede o no trabajar en PHP de forma explícita para que no se pueda trabajar con una variable sin antes ser declarada?
__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #2 (permalink)  
Antiguo 02/05/2004, 22:30
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 21 años, 1 mes
Puntos: 1
Hasta php 4.3 (no sé la versión 5) no... depende de ti el hacer uso correcto de las variables, es decir, declara la variable inicializandola con algún valor. de igual forma si ya empezaste a usar una variable para meter datos de un tipo no la uses luego para meter datos de otro tipo. La buena proramación depende en mayor medida de uno que del lenguaje. Saludos
  #3 (permalink)  
Antiguo 03/05/2004, 08:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Siempre puedes declarar el tipo con "type casting":
usando settype() por ejemplo ...

Lee los comentarios sobre dicha función y sobre el tema en sí de definición de tipos de variables:
http://www.php.net/manual/es/function.settype.php

Personalmente creo que con una validación del tipo que tu realmente deseas controlado con funciones tipo is_xxxx() o afines, tendrías controlado tu mensaje de error a mostrar en tu aplicación o controlar el flujo del mismo.

Lo que sí que es realmente importante en PHP es que las variables externas a tus scripts las recogas por el método esperado usando los arrays superglobales: $_POST, $_GET .. etc para discriminar el método por el cual entran . .por qué en PHP, dependiendo del estado de la directiva: register_globals de tu php.ini podrías asumir toda variable como global (las externas) con el "peligro" que ello puede tener sobre todo cuando se usan sesiones ($_SESSION) o cookies por ejemplo .. donde podrías "suplantar" por "GET" (por el URL por ejemplo) un valor de una variable de Sesión.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 03/05/2004, 12:28
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Si trabajas con error_reporting a E_ALL, te mostrara errores NOTICE cuando intentes acceder a una variable sin inicializar, un indice de un array que no exista, cuando pongas un string sin comillas (y no lo tomo como constante), ...

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 03/05/2004, 16:59
Avatar de RsOfT  
Fecha de Ingreso: marzo-2002
Ubicación: InterNET
Mensajes: 1.121
Antigüedad: 22 años, 8 meses
Puntos: 7
Bueno, en realidad, no me refiero a que la variable sea declada con un tipo en específico, sino, simplemente que haya sido declarada.

Por ejemplo, imaginen que estoy trabajando con una aplicación en donde utilizo las variables $a,$b y $c, entonces, por ejemplo en vez de poner $c = "Hola" pues pongo $cv = "Hola". Supongamos que por error le puse una "v", pero no me di cuanta.

Mi lógio del programa está bien, pero cuando quiera imprimir la variable c, estará vacía, entonces, no sabré inmediatamente donde está el error, tendré que leer mi código nuevamente. Pero si estoy trabajando de formá explícita, inmediatamente ejecute esa página, dirá, la variable $cv no está declarada. entonces encontraré el error inmediatamente.

Esto fue un ejemplo sencillo, no obstante, si se se está trabajando con una aplicación más complejas donde los nombres de las variables seán más largos y se use una gran cantidad de variables, entonces se complica el asunto.

No es que no se pueda trabajar con PHP de forma implícita, se puede, pero la depuración de errores se vuelve un poco más tesiosa. ASP tiene un punto a su favor por encima de PHP con respecto a las declaraciones de variables para trabajar de forma explícita.

__________________
.::RsOfT::.
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance--
  #6 (permalink)  
Antiguo 30/11/2008, 09:49
 
Fecha de Ingreso: noviembre-2008
Mensajes: 13
Antigüedad: 16 años
Puntos: 0
Respuesta: Variables Explícitas

Broher me podrias decir como encuentro documentacion sobre ASP con JavaScript
donde la variable dentro de ASP se declara con var
y los ciclos se hacen como en C++

ejemplo
<%
var A = 100;
var I;

for (I = 0 ; I < 10; I ++)
{
intrucion_1
}


%>

escribeme al foro y a:

[email protected]
  #7 (permalink)  
Antiguo 30/11/2008, 09:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Variables Explícitas

hola... mientras usemos el reporte de errores completos...

no te va a dar error cuando asignes a una variable no declarada antes... osea, la estas declarando justo en ese momento, cuando asignas!!

si usaras alguna variable no declarada, o asignada.. eso da error inmediatamente

en cuanto a lo que refiere el manual, se trata de tipos de variable ... no se debe especificar su tipo, pues... se asigna automaticamente

Código PHP:
$foo 1.24// float
$foo '1'// string
$foo 2// int
$foo true// bool 
incluso, en operaciones sobre variables... también se hace algo así...

Código PHP:
$foo 1.24;
$bar '2.1';

echo 
$foo $bar// 2.604
echo $foo $bar// 1.242.1 
aún siendo tipos distintos, el motor de PHP hace las conversiones necesarias... basándose en los operadores usados...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:23.