PDA

Ver la versión completa : php



gonza25
07/02/2011, 18:45
Buenas! recien estoy comenzando con el tema de la progamación y me meti un poco a estudiar php mediante tutos y mi primo q me ayuda, mi pregunta es la siguiente, estoy viendo un poco de variables si yo tengo lo siguiente por ejemplo

imaginemos q queremos hacer una suma

<?php
// variables

$CINCO = 5
$CUATRO= 4

$SUMA = $cinco + $cuatro

echo $suma;



>?


para q me tengo q tomar TODO el trabajo de escribir tantas variables cuando solo puedo escribir

echo $cinco + $cuatro;

osea, en programacion avanzada en php, las variables sirven de algo y por eso mismo, tengo q aplicarlas de esta manera?

Nighthawk
07/02/2011, 19:30
(ni idea de php)

pero por lo general, esto:


$CINCO = 5
$CUATRO= 4

es una declaracion de constantes. no de variables.

a menos ke cambies el valor de esas dos durante el programa, se consideran constantes porke no cambian.
seria como escribir:

pi = 3.1415927

circulo = r * 2 * pi

y ahi tenes todos los tipos, variable (circulo y r), constante (2) y constante declarada (pi)

lo ke deber ser, ke en php necesitas declarar todas las variables, porke si operas sobre una variable no declarada te va a tirar error.

o sea, si guardas circulo como pi*2*r, pero no especificas circulo como un numero entero, no te va a guardar los decimales y vas a perder precision.

(repito, ni idea de php, pero en general podes identificar los lenguajes por la necesidad de declarar variables o no. PHP puede ke necesite declaracion)

xXBeRSeKeRXx
07/02/2011, 19:31
Buenas! recien estoy comenzando con el tema de la progamación y me meti un poco a estudiar php mediante tutos y mi primo q me ayuda, mi pregunta es la siguiente, estoy viendo un poco de variables si yo tengo lo siguiente por ejemplo

imaginemos q queremos hacer una suma

<?php
// variables

$CINCO = 5
$CUATRO= 4

$SUMA = $cinco + $cuatro

echo $suma;



>?


para q me tengo q tomar TODO el trabajo de escribir tantas variables cuando solo puedo escribir

echo $cinco + $cuatro;

osea, en programacion avanzada en php, las variables sirven de algo y por eso mismo, tengo q aplicarlas de esta manera?

Hay convenciones en lo que es programación, cuando avances y veas OOP (programación orientada a objetos) vas a ver lo importante que es DEFINIR las variables... Remarco la palabra definir porque se llama así, y se utiliza para evitar ciertos errores (aunque PHP da ciertos "permisos" por no ser fuertemente tipado, pero no quiero meterte tantos conceptos de entrada)...

Basicamente al definir variables mantenés un orden en tus scripts, no es obligatorio, pero te aseguro que cuando tengas que hacer modificaciones, tengas un error o lo que fuere, tener buenas prácticas de programación te va a facilitar la tarea... También te va a ser muy útil cuando quieras aprender otro/s lenguaje/s...

Nighthawk
07/02/2011, 19:46
al reves.... necesitan ser declaradas, pero no definidas.

o sea, no podrias operar sobre $var1 sin declararla antes. no importa si le pones un string sobre un numero.
la variable en si ya la declaraste.

no es de declaracion explicita como VB, a eso voy.

en el script original, sumando solo $cinco mas $cuatro, $suma daria cero, porke $cinco y $cuatro no estan declaradas.
declarando cada una, ahi si daria la suma.

eso debe ser lo ke pregunta.

xXBeRSeKeRXx
07/02/2011, 20:10
al reves.... necesitan ser declaradas, pero no definidas.

o sea, no podrias operar sobre $var1 sin declararla antes. no importa si le pones un string sobre un numero.
la variable en si ya la declaraste.

no es de declaracion explicita como VB, a eso voy.

en el script original, sumando solo $cinco mas $cuatro, $suma daria cero, porke $cinco y $cuatro no estan declaradas.
declarando cada una, ahi si daria la suma.

eso debe ser lo ke pregunta.

Seguramente son errores de conceptos mios ya que es lógico lo que decís, pero recuerdo cuando me enseñaron me dijeron bien claro que las variables en PHP no necesitan ser declaradas...

Quizá se refiera a que no es necesario declarar una variable como tal de la siguiente manera, ya que al tener el signo pesos PHP lo interpreta como tal:



var $var;


Pero para evitar malentendidos edito lo que puse, porque además leyéndolo no tiene nada que ver la respuesta con lo que pusiste XD...

Nighthawk
07/02/2011, 22:19
Quizá se refiera a que no es necesario declarar una variable como tal de la siguiente manera, ya que al tener el signo pesos PHP lo interpreta como tal:


claro, pero el error estaba en suponer implicitamente ke $cinco es igual a 5, sin antes declararlo.

el dice ke seria suficiente con poner $cinco + $cuatro y eso daria 9, pero da 0, porke las dos variables, aunke estan declaradas, estan vacias.
declarando $cinco = 5, eso pasa a ser una constante (siempre ke no la cambie)

a lo ke voy, es ke si planea operar sobre una variable con otras dos, esas otras dos las tiene ke declarar, porke estaria sumando "undefined" + "undefined" y eso no da ni cero ni infinito.

esa es la diferencia de lenguajes ke decia yo. VB te crea la variable cuando le asignas un valor, pero si ese valor es tambien una variable y no esta declarada, te tira error.

en AS o C, tenes ke declarar todas las variables, aunke no necesariamente el tipo de dato.

en pascal tenes ke definir variable y tipo de dato.

gonza25
08/02/2011, 03:24
claro, pero el error estaba en suponer implicitamente ke $cinco es igual a 5, sin antes declararlo.

el dice ke seria suficiente con poner $cinco + $cuatro y eso daria 9, pero da 0, porke las dos variables, aunke estan declaradas, estan vacias.
declarando $cinco = 5, eso pasa a ser una constante (siempre ke no la cambie)

a lo ke voy, es ke si planea operar sobre una variable con otras dos, esas otras dos las tiene ke declarar, porke estaria sumando "undefined" + "undefined" y eso no da ni cero ni infinito.

esa es la diferencia de lenguajes ke decia yo. VB te crea la variable cuando le asignas un valor, pero si ese valor es tambien una variable y no esta declarada, te tira error.

en AS o C, tenes ke declarar todas las variables, aunke no necesariamente el tipo de dato.

en pascal tenes ke definir variable y tipo de dato.

Claro, berzerker me entendio perfectamente cual era mi pregunta, y por eso le agradezco.

Pero me planteaste una duda, osea lo q vos te referis, es q por ejemplo VB, te genera automaticamente el valor de la variable? como puede ser eso?


y chicos, alguno de los dos, me podria explicar una manera mas sencilla, como utilizar errays (matriz) por q en el tutorial no lo entendi demasiado :S

Nighthawk
08/02/2011, 17:54
Pero me planteaste una duda, osea lo q vos te referis, es q por ejemplo VB, te genera automaticamente el valor de la variable? como puede ser eso?

no... te genera el tipo de datos.
es una pendejesima de ciclo de proceso, pero la diferencia entre declarar una variable y no declararla, es ke al inicio del programa te reserva la memoria para todas las variables declaradas, y el programa corre mas rapido.

en cambio si no declaras variables te ocupa la memoria en el momento, y si ya tenes la memoria cargada tiene ke recorrer la memoria hasta ke encuentre un espacio.

ademas, especificando el tipo de datos ya reservas X espacio y keda fijo.
por ejemplo, si vas a poner una lista por numero de documento, para el documento declaras una variable Long, ke ocupa no me acuerdo cuantos millones positivos y negativos.
para el nombre y apellido, con un String de 50 te alcanza.
y para la edad, un Byte te alcanza, porke Byte es entre 0 y 255.

multiplica eso por 1000 registros en una base de datos de votantes por ejemplo, y entras a cargar mucho mas la memoria.
si no especificaras el tipo de dato, el documento se cargaria como Real, el string como de 255 en vez de 50, y la edad tambien como Real (ke considera positivos, negativos y decimales)

lo ke yo decia es ke en tu programa, SI, tenes ke declarar $cuatro y $cinco si keres usar esas variables para representar 4 y 5.
porke si haces $cuatro + $cinco pero no le asignas 4 y 5 a cada una, por mas ke las declares las dos van a valer 0, y $suma te va a dar 0.
si directamente no declaras ninguna, te va a dar indeterminado, porke $cuatro y $cinco valen "no existe".

una variable lleva asignada un nombre, un tipo de datos y un valor.
en algunos lenguajes, podes obviar el tipo de datos y te sirve para planchar la variable cuando kieras.
en actionscript por ejemplo, cuando creas un bucle tenes ke declarar la contadora, pero lo podes hacer en el momento todo junto:

for (var X:int = 0; X < 3; X++){}

es lo mismo ke

var X:int
for (X = 0; X < 3; X++){}

en este caso, si no declaras X de ninguna forma, te tira error.
en VB podes crear la contadora sin declararla y funciona igual, porke detecta ke es una variable y la crea en el momento.

xXBeRSeKeRXx
08/02/2011, 18:14
Claro, berzerker me entendio perfectamente cual era mi pregunta, y por eso le agradezco.

Pero me planteaste una duda, osea lo q vos te referis, es q por ejemplo VB, te genera automaticamente el valor de la variable? como puede ser eso?

No sé de VB, pero imagino que no... Como bien dijeron, que una variable se llame, por ejemplo, $cinco no implica que 5 sea el valor de la misma...


y chicos, alguno de los dos, me podria explicar una manera mas sencilla, como utilizar errays (matriz) por q en el tutorial no lo entendi demasiado :S

Antes que nada es arrays... Un array es otro tipo de variable, pero tiene una estructura optimizada para trabajar como un "mapa", algo así como pares de clave -> valor, yendo a un ejemplo básico podrías tener:



<?php

$mes1 = "Enero";
$mes2 = "Febrero";
$mes3 = "Marzo";

?>


Repito, es algo básico pero te va a ayudar a entender un poco más... Entonces podrías mostrar un balance mensual de esta manera:



<?php

$mes1 = "Enero";
$mes2 = "Febrero";
$mes3 = "Marzo";

echo "Balance para el mes de " . $mes1 . ": 10<br />";
echo "Balance para el mes de " . $mes2 . ": 20<br />";
echo "Balance para el mes de " . $mes3 . ": 15<br />";

?>


Si a este mismo ejemplo lo encarás con arrays y lo mezclas con algún bucle (no se si leiste algo sobre el tema pero si estás con arrays deberías saber algo), quedaría algo así:



<?php

$aMeses = array(); // defino la variable $aMeses como un array

$aMeses[] = "Enero";
$aMeses[] = "Febrero";
$aMeses[] = "Marzo";

foreach($aMeses as $mes){
// para este ejemplo el valor del balance es fijo, en una aplicación deberías ver como lo calculás o consultás
echo "Balance para el mes de " . $mes . ": 10<br />";
}


/* Otra forma de definir un array */

$aMeses2 = array("Enero", "Febrero", "Marzo"); // defino la variable $aMeses2 como un array y le asigno alguno valores

foreach($aMeses2 as $mes){
// para este ejemplo el valor del balance es fijo, en una aplicación deberías ver como lo calculás o consultás
echo "Balance para el mes de " . $mes . ": 10<br />";
}
?>


Por ejemplo podrías consultar de una base de datos el balance de cada mes y dentro del mismo bucle mostrar los resultados correspondientes, etc...

Como verás es algo muy potente y realmente útil... A medida que vayas aprendiendo nuevas cosas y las vayas mezclando vas a ver que algo que en un comienzo lo hacias con muchas líneas de código, quizá en muy pocas lo podrías haber resuelto...

Seguramente con esto que te expliqué te van a surgir nuevas dudas, pero como me dijo un profesor: "A programar se aprende programando"...

gonza25
08/02/2011, 23:54
ah claro, cuando lo vas combinando con otras cosas, se vuelve algo muy potente, recien avanze un poco mas y pude ver los Arrays con definicion creo q se llamaban, algo q me parecio muy copado, ya que esta bueno para poder manejar las variables de una forma muy copada.

pero una pregunta, yo defino por ejemplo la variable $chicles a un array

<?php

$chicles=array

'1'=> 'Beldent'
'2'=>'Topline

?>

si yo despues quiero agregar una nueva variable dentro del erray, tengo q volver a redefinir $chicles? o directamente puedo agregar una variable mas

por ejemplo:

$chicles=array

'1'=> 'Beldent'
'2'=>'Topline

echo $chicles [1]

$chicles

'3'=> 'Bubaloo'
?<

Esta bien lo q hice?

xXBeRSeKeRXx
09/02/2011, 07:44
ah claro, cuando lo vas combinando con otras cosas, se vuelve algo muy potente, recien avanze un poco mas y pude ver los Arrays con definicion creo q se llamaban, algo q me parecio muy copado, ya que esta bueno para poder manejar las variables de una forma muy copada.

pero una pregunta, yo defino por ejemplo la variable $chicles a un array

<?php

$chicles=array

'1'=> 'Beldent'
'2'=>'Topline

?>

si yo despues quiero agregar una nueva variable dentro del erray, tengo q volver a redefinir $chicles? o directamente puedo agregar una variable mas

por ejemplo:

$chicles=array

'1'=> 'Beldent'
'2'=>'Topline

echo $chicles [1]

$chicles

'3'=> 'Bubaloo'
?<

Esta bien lo q hice?

Una consulta antes que nada, ¿vos probás lo que vas haciendo?... Imagino que no porque eso da error (no cerrás comillas, no usás punto y coma para el final de una sentencia, está mal definido el array, mal cerrado el tag PHP y ni siquiera lo abriste en el segundo ejemplo), la forma correcta de hacerlo de esa manera sería:



$chicles = array(
1=>"Beldent",
2=>"Topline");

echo $chicles[1];


Si vos volvés a definir a $chicles como un array (por más que uses otra posición para agregar contenidos), borrás todo lo que tenía almacenado antes y solamente queda lo último... La forma correcta es:



$chicles[] = "Bubbaloo";

echo $chicles[3] . "<br />";


Es como asignar un valor a cualquier variable, con la diferencia que al final del nombre ponés unos corchetes, lo ideal es dejarlo vacio así el script le asigna la automáticamente la siguiente posición disponible (si la última fué 2, la siguiente sería 3), o también sería válido:



$chicles[3] = "Bubbaloo";


Una última cosa, en PHP los arrays comienzan con el indice 0 (cero), no hay error, pero lo ideal sería:



$chicles = array(
0=>"Beldent",
1=>"Topline",
2=>"Bubbaloo");

gonza25
09/02/2011, 12:44
Si, tenias razón! todavia estoy escribiendo en el aire, ya q no me puse a probar nada, para empezar a programar me recomendaron en Notepad ++, vos decis q use ese?


Gracias por tus explicaciones, me ayudaron un monton! y una pregunta, por q parece q a esta parte no llegué o yo lo entendi mal, pero ya vi en varias lineas de codigo esta parte


$chicles[] = "Bubbaloo";

echo $chicles[3] . "<br />";


que es eso?

xXBeRSeKeRXx
09/02/2011, 13:18
Si, tenias razón! todavia estoy escribiendo en el aire, ya q no me puse a probar nada, para empezar a programar me recomendaron en Notepad ++, vos decis q use ese?


Gracias por tus explicaciones, me ayudaron un monton! y una pregunta, por q parece q a esta parte no llegué o yo lo entendi mal, pero ya vi en varias lineas de codigo esta parte


$chicles[] = "Bubbaloo";

echo $chicles[3] . "<br />";


que es eso?

Te recomiendo algún programa que no te "facilite" demasiado las cosas, Notepad++ está perfecto, te resalta sintaxis, te indenta las líneas, etc... Yo uso uno que se llama PHP Designer porque fué con el que aprendí y me quedó de costumbre...

Para probar las cosas vas a necesitar un programa que haga de tu PC un "servidor local", eso lo hacés con Apache, para consultas a base de datos (aunque esto ya es más avanzado) vas a usar MySQL con phpMyAdmin...

Hay paquetes que incluyen esto como por ejemplo AppServ (http://www.appservnetwork.com/) o XAMPP (http://www.apachefriends.org/es/xampp.html)... Lo instalas (cualquiera de los 2, NO los 2) y listo, podés empezar a usar tu PC como servidor local...

Te recomiendo que leas la documentación del que instales para que aprendas...

Y en cuanto al <br />, es un tag html que indica un salto de linea, como tocar enter en Word...

gonza25
09/02/2011, 13:21
Mi primo me recomendó q utilize el WampServer y el MySQLAdministrator, estos programas son para crear servers locales no? para poder probar lo q voy programando. hoy voy a seguir todo el dia estudiando un poco PHP y a la noche presento mis dudas! gracias berserker, fuiste de gran ayuda!