Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Módulo 2
DzEl entorno de PHPdz
www.isiv.edu.ar
ISIV-Educación a Distancia
Array
Números en punto flotante
Entero
Objeto
Cadena
El tipo de una variable normalmente no lo indica el programador; en su lugar, lo decide PHP en tiempo de
ejecución dependiendo del contexto en el que se utilice esa variable.
Si se quisiese obligar a que una variable se convierta a un tipo concreto, se podría forzar la variable o usar la
función settype() para ello.
Nótese que una variable se puede comportar de formas diferentes en ciertas situaciones, dependiendo de
qué tipo sea en ese momento. Para más información, vea la sección Conversión de Tipos.
Enteros
Los enteros se pueden especificar usando una de las siguientes sintaxis:
$a = 1.234; $a = 1.2e3;
Cadenas
Las cadenas de caracteres se pueden especificar usando uno de dos tipos de delimitadores.
Si la cadena está encerrada entre dobles comillas ("), las variables que estén dentro de la cadena serán
expandidas (sujetas a ciertas limitaciones de interpretación). Como en C y en Perl, el carácter de barra
invertida ("\") se puede usar para especificar caracteres especiales:
Caracteres protegidos
Secuencia Significado
\n Nueva línea
\r Retorno de carro
\t Tabulación horizontal
\\ Barra invertida
\$ Signo del dólar
\" Comillas dobles
\[0-7]{1,3} La secuencia de caracteres que coincida con la expresión regular
es un carácter en notación octal.
Se puede proteger cualquier otro carácter, pero se producirá una advertencia en el nivel de depuración más
alto.
La segunda forma de deli ita u a ade a de a a te es usa el a á te de o illa si ple "’" . Cua do u a
cadena va encerrada entre comillas simples, los únicos caracteres de escape que serán comprendidos son
"\\" y "\’". Esto es po o ve io, así ue se puede te e o illas simples y barras invertidas en una cadena
entre comillas simples. Las variables no se expandirán dentro de una cadena entre comillas simples.
Otra forma de delimitar cadenas es usando la sintaxis de documento incrustado ("<<<"). Se debe
proporcionar un identificador después de <<<, después la cadena, y después el mismo identificador para
cerrar el entrecomillado.
$str = <<<EOD
Ejemplo de cadena
Expandiendo múltiples líneas
Usando sintaxis de documento incrustado.
EOD;
Las ade as se puede o ate a usa do el ope ado ’.’ Punto . Nótese ue el ope ado ’+’ su a o si ve
para esto. Por favor mire Operadores de cadena para más información.
Se puede acceder a los caracteres dentro de una cadena tratándola como un array de caracteres indexado
numéricamente, usando una sintaxis similar a la de C. Vea un ejemplo más abajo.
Conversión de Cadenas
Cuando una cadena se evalúa como un valor numérico, el valor resultante y el tipo se determinan como
sigue.
La ade a se evalua á o o u do le si o tie e ual uie a de los a a te es ’.’, ’e’, o ’E’. E aso o t a io,
se evaluará como un entero.
El valor viene dado por la porción inicial de la cadena. Si la cadena comienza con datos de valor numérico,
este será el valor usado. En caso contrario, el valor será 0 (cero). Los datos numéricos válidos son un signo
opcional, seguido por uno o más dígitos (que opcionalmente contengan un punto decimal), seguidos por un
exponente opcional. El exponente es u a ’e’ o u a ’E’ seguidos po u o o ás dígitos.
Cuando la primera expresión es una cadena, el tipo de la variable dependerá de la segunda expresión.
Para más información sobre esta conversión, mire en la página del manual de Unix strtod(3).
Si quisiera probar cualquiera de los ejemplos de esta sección, puede cortar y pegar los ejemplos e insertar
la siguiente línea para ver por sí mismo lo que va ocurriendo:
Los nuevos programadores de PHP a menudo olvidan el signo $ al principio de la variable. En ese caso, no
funcionará.
Vamos a tratar de crear una variable que contiene una cadena y una variable que contiene un número:
<?php
$txt="Hola Mundo!";
$x=16;
?>
En el ejemplo anterior, se ve que usted no tiene que decirle a PHP que tipo de datos es la variable.
PHP automáticamente convierte la variable con el tipo de datos correcto, dependiendo de su valor.
En un lenguaje de programación fuertemente tipado, usted tiene que declarar (definir) el tipo y nombre de
la variable antes de usarla.
En PHP, la variable se declara de forma automática cuando se utiliza.
<?php
$txt="Hola Mundo";
echo $txt;
?>
Hola Mundo
Ahora, vamos a tratar de utilizar algunas funciones de los diferentes operadores y de manipular la cadena.
El operador de concatenación
Sólo hay un operador de cadenas en PHP.
El operador de concatenación (.) Se utiliza para poner dos valores de cadena juntos.
Para concatenar dos variables de cadena en conjunto, utilice el operador de concatenación:
<?php
$txt1="Hola Mundo!";
$txt2="Que tengas un buen dia!";
echo $txt1 . " " . $txt2;
?>
Si nos fijamos en el código anterior se ve que hemos utilizado el operador de concatenación de dos veces.
Esto es así porque hemos tenido que introducir una tercera cadena (un carácter de espacio), para separar las
dos cadenas.
La función strlen ()
La función strlen () se utiliza para devolver la longitud de una cadena.
Vamos a encontrar la longitud de una cadena:
<?php
echo strlen("Hola Mundo!");
?>
La longitud de una cadena se utiliza a menudo en los bucles u otras funciones, cuando es importante saber
cuándo la cadena termina. (Es decir, en un bucle, nos gustaría detener el bucle después de que el último
carácter de la cadena).
El strpos () la función
La función strpos () se utiliza para buscar un personaje / texto dentro de una cadena.
Si se encuentra una coincidencia, esta función devolverá la posición del carácter de la primera coincidencia.
Si no se encuentra ninguna, devolverá FALSE.
Vamos a ver si podemos encontrar la cadena "mundo" en la cadena:
<?php
echo strpos("Hola Mundo!","Mundo");
?>
$a = 1;
include "b.inc";
Aquí, la variable $a dentro del script incluido b.inc. De todas formas, dentro de las funciones definidas por el
usuario aparece un ámbito local a la función. Cualquier variable que se use dentro de una función está, por
defecto, limitada al ámbito local de la función.
Por ejemplo:
$a = 1; /* ámbito global */
Function Test () {
echo $a; /* referencia a una variable de ámbito local */
}
Test ();
Este script no producirá salida, ya que la orden echo utiliza una versión local de la variable $a, a la que no se
ha asignado ningún valor en su ámbito. Puede que usted note que hay una pequeña diferencia con el
lenguaje C, en el que las variables globales están disponibles automáticamente dentro de la función a menos
que sean expresamente sobreescritas por una definición local. Esto puede causar algunos problemas, ya que
la gente puede cambiar variables globales inadvertidamente. En PHP, las variables globales deben ser
declaradas globales dentro de la función si van a ser utilizadas dentro de dicha función. Veamos un ejemplo:
$a = 1;
$b = 2;
Function Sum () {
global $a, $b;
$b = $a + $b;
}
Sum ();
echo $b;
El script anterior producirá la salida "3". Al declarar $a y $b globales dentro de la función, todas las
referencias a tales variables se referirán a la versión global. No hay límite al número de variables globales
que se pueden manipular dentro de una función.
Un segundo método para acceder a las variables desde un ámbito global es usando el array $GLOBALS
propio de PHP. El ejemplo anterior se puede reescribir así:
$a = 1;
$b = 2;
Function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}
Sum ();
echo $b;
El array $GLOBALS es un array asociativo con el nombre de la variable global como clave y los contenidos de
dicha variable como el valor del elemento del array.
Otra característica importante del ámbito de las variables es la variable static. Una variable estática existe
sólo en el ámbito local de la función, pero no pierde su valor cuando la ejecución del programa abandona
este ámbito. Consideremos el siguiente ejemplo:
Function Test () {
$a = 0;
echo $a;
$a++;
}
Esta función tiene poca utilidad ya que cada vez que es llamada asigna a $a el valor 0 y representa un "0". La
sentencia $a++, que incrementa la variable, no sirve para nada, ya que en cuanto la función termina la
variable $a desaparecer. Para hacer una función útil para contar, que no pierda la pista del valor actual del
conteo, la variable $a debe declararse como estática:
Function Test () {
static $a = 0;
echo $a;
$a++;
}
Ahora, cada vez que se llame a la función Test(), se representará el valor de $a y se incrementará.
Las variables estáticas también proporcionan una forma de manejar funciones recursivas. Una función
recursiva es la que se llama a sí misma. Se debe tener cuidado al escribir una función recursiva, ya que puede
ocurrir que se llame a sí misma indefinidamente. Hay que asegurarse de implementar una forma adecuada
de terminar la recursión. La siguiente función cuenta recursivamente hasta 10, usando la variable estática
$count para saber cuándo parar:
Function Test () {
static $count = 0;
$count++;
echo $count;
if ($count < 10) {
Test ();
}
$count--;
}
Operadores aritméticos
x=4
* Multiplicación 20
x*5
15/5 3
/ División
5.2 2.5
5% 2 1
% Módulo (resto de división) 10% 8 2
10% 2 0
x=5
++ Incremento x=6
x++
x=5
- Disminuir x=4
x-
Operadores de asignación
Operadores de comparación
Operadores lógicos
Sentencias condicionales
Muy a menudo, al escribir el código, que desea llevar a cabo diferentes acciones para diferentes decisiones.
Puede utilizar instrucciones condicionales en el código para hacer esto.
if - utilizar esta sentencia para ejecutar código si una condición especificada es verdadera.
si... else - utilizar esta sentencia para ejecutar código si una condición es verdadera y el código de
otra, si la condición es falsa.
si... elseif else.... - utilizar esta sentencia para seleccionar uno de varios bloques de código que se
ejecutará.
sentencia switch - utilizar esta sentencia para seleccionar uno de los muchos bloques de código que
se ejecutará.
La sentencia if
Sintaxis
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri") echo "Buen fin de semana!";
?>
</body>
</html>
Tenga en cuenta que no hay otra cosa.....En esta sintaxis. El código se ejecuta sólo si la condición
especificada es verdadera.
Utilice la sentencia else si.... para ejecutar un código si una condición es verdadera y otro código si una
condición es falsa.
Sintaxis
if (condicion)
código a ejecutar si la condición es TRUE;
else
código a ejecutar si la condición es FALSE;
Ejemplo
El siguiente ejemplo producirá la salida "Buen fin de semana!" si hoy es viernes, de lo contrario se producirá
la salida "Buen dia!":
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
echo "Buen fin de semana!";
else
echo "Buen Dia!";
?>
</body>
</html>
Si más de una línea deben ser ejecutados si la condición es verdadero / falso, las líneas deben estar
encerrados entre llaves:
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
{
echo "Hola!<br />";
echo "Buen fin de semana!";
echo "Nos vemos el lunes!";
}
?>
</body>
</html>
Utilice el sí.... elseif... else para seleccionar uno de varios bloques de código que se ejecutará.
Sintaxis
if (condicion)
codigo a ejecutar si la condicion es TRUE;
elseif (condicion)
codigo a ejecutar si la condicion es TRUE;
else
codigo a ejecutar si la condicion es FALSE1;
Ejemplo1
El siguiente ejemplo producirá la salida "Buen fin de semana!" si hoy es viernes, y "Que tengas un buen
domingo!" si hoy es domingo. De lo contrario, la salida de "Que tengas un bien dia!":
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
echo " Buen fin de semana!";
elseif ($d=="Sun")
echo " Que tengas un buen domingo!";
else
echo " Que tengas un buen dia!";
?>
</body>
</html>
Así es como funciona: En primer lugar tenemos una sola expresión n (con mayor frecuencia una variable),
que se evalúa una vez. El valor de la expresión se compara entonces con los valores para cada caso en la
estructura. Si existe una coincidencia, el bloque de código asociado a ese caso se ejecuta. Utilice break para
evitar que el código se ejecute en el siguiente caso de forma automática. La declaración por defecto se utiliza
si no hay coincidencias.
Ejemplo
<html>
<body>
<?php
$x=1;
switch ($x)
{
case 1:
echo "Number 1";
break;
case 2:
echo "Number 2";
break;
case 3:
echo "Number 3";
break;
default:
echo "No number between 1 and 3";
}
?>
</body>
</html>