Sunteți pe pagina 1din 43

Constantes PHP

Sintaxis Se puede definir una constante usando la funcin define(). Una vez que la constante est definida, no puede ser cambiada o redifinida en ningn momento. Para obtener el valor de una constante solo es necesario especificar su nombre. A diferencia de las variables, no se debe prefijar una constante con el signo $.

Diferencias entre constantes y variables:


Las constantes no llevan el signo dlar ($), como prefijo. Las constantes pueden ser definidas usando la funcin define(), y no por simple asignacin. Las constantes pueden ser definidas y accedidas desde cualquier sitio sin importar las reglas de acceso de variables. Las constantes no pueden ser redefinidas o eliminadas una vez se han definido. Y Las constantes solo deberan contener valores escalares.

Ejemplo: Definiendo constantes


<?php define("SALUDO", "Hola mundo."); echo SALUDO; // muestra "Hola mundo." echo Saludo; // muestra "Constant" y provoca un error. ?> Resultado: Holamundo. Notice: Use of undefined constant Saludo C:\xampp\htdocs\prueba\index.php on line 4 Saludo Por convencin se utilizan nombres en mayscula. Lasconstantes no pueden ser reescritas, es decir, si definimos 2 constantes con el mismo nombre siempre va a tomar assumed 'Saludo' in

la primera y va a generar un error indicando que se intent definir nuevamente la constante. Ejemplo: <?php define('SALUDAR','Hola mundo'); define('SALUDAR','Chau mundo'); ?> Nuestro script PHP va a interpretar la constante SALUDAR con la primera informacin definida en ella, es decir Hola mundo.

Constantes de Clases
Es posible definir valores constantes en funcin de cada clase mantenindola invariable. El valor debe ser una expresin constante, no una variable, una propiedad, un resultado de una operacin matemtica, o una llamada a una funcin. <?php class Saludo {

const SALUDO = 'Hola, esto es PHP'; function showConstant() { echo self::SALUDO . "<br>"; } } echo Saludo::SALUDO . "<br>"; $classname = "Saludo"; echo $classname::SALUDO . "<br>"; // A partir de PHP 5.3.0 $class = new Saludo(); $class->showConstant(); echo $class::SALUDO."<br>"; // A partir de PHP 5.3.0 ?> Resultado: Hola, esto es Hola, esto es Hola, esto es Hola, esto es

PHP PHP PHP PHP

Variables
En PHP las variables se representan con un signo de dlar seguido por el nombre de la variable. El nombre de la variable es sensible a minsculas y maysculas. Un nombre de variable vlido tiene que empezar con una letra o un carcter de subrayado (underscore), seguido de cualquier nmero de letras, nmeros y caracteres de subrayado. Nota: $this es una variable especial que no puede ser asignada. <?php $var = 'Roberto'; $Var = 'Juan'; echo "$var, $Var"; $4site = 'aun no'; $_4site = 'aun no'; ?>

// imprime "Roberto, Juan" // invlido; comienza con un nmero // vlido; comienza con un carcter de subrayado

PHP tambin ofrece otra forma de asignar valores a las variables: asignar por referencia.

Para asignar por referencia, simplemente se antepone un signo ampersand (&) al comienzo de la variable cuyo valor se est asignando (la variable fuente). Por ejemplo, el siguiente segmento de cdigo produce la salida 'Mi nombre es Bob' dos veces: <?php $miNombre= 'Bob'; // Asigna el valor 'Bob' a $miNombre $otroNombre = &$miNombre; // Referenciar $miNombre va $bar. $otroNombre = "Mi nombre es $otroNombre "; // Modifica $otroNombre echo $otroNombre ."<br>"; echo $miNombre; // $miNombre tambin se modifica. ?> Algo importante a tener en cuenta es que slo las variables con nombre pueden ser asignadas por referencia. No es necesario inicializar variables en PHP, sin embargo, es una muy buena prctica.

mbito de las variables


El mbito de una variable es el contexto dentro del que la variable est definida. La mayor parte de las variables PHP slo tienen un mbito simple. Este mbito simple tambin abarca los ficheros incluidos y los requeridos. Por ejemplo:

<?php $a = 1; include 'achivo.inc.php'; ?> Aqu, la variable $a estar disponible al interior del script incluido archivo.inc.php Al interior de las funciones definidas por el usuario se introduce un mbito local a la funcin. Cualquier variable usada dentro de una funcin est, por omisin, limitada al mbito local de la funcin. Por ejemplo: <?php $a = 1; /* mbito global */ function test() { echo $a; /* referencia a una variable del mbito local */ } test(); ?> Resultado: Notice: Undefined variable: a in C:\xampp\htdocs\prueba\index.php on line 5

Este script no producir salida, ya que la sentencia echo utiliza una versin local de la variable $a, a la que no se ha asignado ningn valor en su mbito. En PHP, las variables globales deben ser declaradas globales dentro de la funcin si van a ser utilizadas dentro de dicha funcin.

Ejemplo: Uso de global


<?php $a = 1; $b = 2; function Suma() { global $a, $b; $b = $a + $b; } Suma(); echo $b; ?>

El script anterior producir la salida 3. Al declarar $a y $b globales dentro de la funcin, todas las referencias a tales variables se referirn a la versin global. No hay lmite al nmero de variables globales que se pueden manipular dentro de una funcin. Un segundo mtodo para acceder a las variables desde un mbito global es usando el array $GLOBALS. El ejemplo anterior se puede reescribir as:

Ejemplo: Uso de $GLOBALS en lugar de global


<?php $a = 1; $b = 2; function Suma() { $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b']; } Suma(); echo $b; ?>

Uso de variables static


Otra caracterstica importante del mbito de las variables es la variable esttica. Una variable esttica existe slo en el mbito local de la funcin, pero no pierde su valor cuando la ejecucin del programa abandona este mbito. Consideremos el siguiente ejemplo:

Ejemplo: Ejemplo que demuestra la necesidad de variables estticas


<?php function test() { $a = 0; echo $a; $a++; } test(); echo "<br>"; test(); ?>

10

Esta funcin tiene poca utilidad ya que cada vez que es llamada asigna a $a el valor 0 e imprime un 0. La sentencia $a++, que incrementa la variable, no es til, ya que en cuanto la funcin finaliza, la variable $a desaparece. Para hacer una funcin til para contar, que no pierda la pista del valor actual del conteo, la variable $a debe declararse como esttica: <?php function test() { static $a = 0; echo $a; $a++; } test(); echo "<br>"; test(); ?>

11

Ahora, $ase inicializa nicamente en la primera llamada a la funcin, y cada vez que la funcin test() es llamada, imprimir el valor de $a y lo incrementa. Nota: Las variables estticas pueden ser declaradas como se ha visto en los ejemplos anteriores. Al tratar de asignar valores a estas variables que sean el resultado de expresiones, causar un error de anlisis sintctico. Ejemplo #7 Declaracin de variables estticas <?php function foo(){ static $int = 0; // correcto static $int = 1+2; // incorrecto (ya que es una expresin) static $int = sqrt(121); // incorrecto (es una expresin tambin) $int++; echo $int; } ?>

12

Variables Dinmicas en PHP (Variables variables)


Es una forma de acceder a las variables usando a la vez otras variables. El operador $$ en PHP se utiliza para las variables dinmicas, es decir, se utiliza cuando se quiere que el valor de una variable, se convierta en otra variable por s mismo. Ejemplo: <?php $nombre = 'mivariable'; $mivariable= 'Hola Mundo'; echo$$nombre; // Imprime Hola Mundo ?>

13

Tipos de datos
Booleanos Este es el tipo ms simple. Un boolean expresa un valor de verdad. Puede ser TRUEorFALSE. Sintaxis Para especificar un literal boolean, usar alguna de las palabras clave TRUE o FALSE. Ambas son insensibles a maysculas y minsculas. <?php $foo = True; // asigna el valor TRUE a $foo ?> Enteros Un entero o integer es un nmero del conjunto = {..., -2, -1, 0, 1, 2, ...}. Sintaxis

14

Los integer pueden ser especificados mediante notacin decimal (base 10), hexadecimal (base 16), octal (base 8) o binaria (base 2), opcionalmente precedidos por un signo (- o +).

Ejemplo: Enteros literales


<?php $a $a $a $a $a ?> = = = = = 1234; // nmero decimal -123; // un nmero negativo 0123; // nmero octal (equivalente a 83 decimal) 0x1A; // nmero hexadecimal (equivalente a 26 decimal) 0b11111111; // nmero binario (equivalente al 255 decimal)

Ejemplo:
<?php /*El programa realiza una operacion simple de adicion utilizando un numero entero negativo y un entero positivo*/ $a=-10; //la variable $a recibe el valor -10 $b= 10; //la variable b recibe el valor 10

15

echo $a + $b; ?>

//el resultato es 0

El tipo de dato flotante

Con Php tenemos la ventaja que los tipos de datos flotantes conocidos tambin como "nmeros de punto flotantes", "dobles" o "nmeros reales" no se declarar como en otras lenguaje de programacin. La sintaxis $a = 10.3; <?php
/*El programa demuestra que Php maneja por si mismo los tipos de datos....*

$a= 10; // la variable recibe el entero 10 $b= 10.0; // la variable b recibe el flotante 10

16

echo $a / 4 . "<br />"; echo $b / 4; ?>


El tipo de dato cadena

//el resultato es 2.5 //el resultato es 2.5

Una cadena, conocida tambin como string, representa una serie de caracteres donde un carcter es lo mismo que un byte (8 bits). Sintaxis Un string literal puede ser especificado de las siguientes formas: comillas simples comillas dobles echo 'Esta es una cadena encerrada entre comillas simples'; echo "Esta es una cadena encerrada entre comillas dobles";

17

<?php echo 'Esto es una cadena sencilla'; echo 'Tambien puede incluir nuevas lneas en cadenas de esta forma ya que es correcto hacerlo as'; // Resultado: Arnold una vez dijo: "I'll be back" echo 'Arnold una vez dijo: "I\'ll be back"'; // Resultado: Ha borrado C:\*.*? echo '<br>Ha borrado C:\\*.*?'; // Resultado: Ha borrado C:\*.*? echo '<br>Ha borrado C:\*.*?'; // Resultado: Esto no se expandir: \n una nueva lnea echo '<br>Esto no se expandir: \n una nueva lnea'; // Resultado: Las variables $tampoco se $expandiran echo '<br>Las variables $tampoco se $expandiran'; ?>

18

Convertir tipos de datos

Php es un lenguaje de tipo permisivo, por eso es posible que nunca tendras que convertir un tipo de dato. No obstante, si hace falta, Php dispone de una funcion integrada que puede establecer el valor de una variable de un tipo a otro. Antes de cambiar el valor de una variable es recomandable determinar de que tipo de dato se trata. La funcin gettype ( ) se puede utilizar para determinar el tipo actual de una variable y la funcin y settype ( ) establece un tipo determinado. <?php
/*Este ejemplo muestra como se pueden convertir los tipos de datos utilizando funciones

integradas en Php*/ $b = 5; echogettype ($b); //a la variable $b se asigna el numero 5 //el tipo de dato es un entero

19

settype ($b, "string"); //el tipo de dato de la variable $b se convierte en una cadena echo "<br />"; //salto de linea

echogettype ($b); //el tipo de dato de la variable $b es ahora una cadena ?>
Resultado:

integer string

Arrays
Un array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asocia valores con claves. Un array es un conjunto de variables agrupadas bajo un nico nombre. Cada variable dentro de la matriz se denomina elemento. Dentro de la misma matriz pueden existir variables de diferentes tipos y no es necesario que sean todas del mismo tipo.

20

Sintaxis Especificacin con array() Un array puede ser creado usando el constructor del lenguaje array(). ste toma un cierto nmero de parejas clave => valor como argumentos. A partir de PHP 5.4 tambin se puede usar la sintaxis de array corta, que reemplaza array() con []. Ejemplo Un array simple <?php $capitales = array( "Peru" => "Lima", "Argentina" => "Buenos Aires", "Bolivia" => "La Paz", ); print_r($capitales); echo"<br>"; // a partir de PHP 5.4 $frutas = [

21

"a" => "Manzana", "b" => "Naranja", "c" => "Lima", ]; echo"Frutas: <br>"; print_r($frutas); ?> Resultado: Array( [Peru] => Lima [Argentina] => Buenos Aires [Bolivia] => La Paz ) Frutas: Array( [a] => Manzana [b] => Naranja [c] => Lima ) La clave puede ser un integer o un string. El valor puede ser de cualquier tipo.

22

Los arrays PHP pueden contener claves integer y string al mismo tiempo ya que PHP no distingue entre arrays indexados y asociativos. var_dump:Esta funcin muestra informacin estructurada sobre una o ms expresiones incluyendo su tipo y valor. Ejemplo: Claves mixtas integer y string <?php $array = array( "foo" => "bar", "bar" => "foo", 100 => -100, -100 => 100, ); var_dump($array); ?> Resultado: array(4) { ["foo"]=> string(3) "bar" ["bar"]=> string(3) "foo" [100]=>int(-100) [100]=>int(100) }

23

foreach El constructor foreach proporciona un modo sencillo de iterar sobre arrays. foreach funciona slo sobre arrays y objetos, y emitir un error al intentar usarlo con una variable de un tipo diferente de datos o una variable no inicializada. Existen dos sintaxis: 1. foreach (expresin_array as $valor) sentencias 2. foreach (expresin_array as $clave => $valor) sentencias La primera forma recorre el array dado por expresin_array. En cada iteracin, el valor del elemento actual se asigna a $valor y el puntero interno del array avanza una posicin (as en la prxima iteracin se estar observando el siguiente elemento). La segunda forma adems asigna la clave del elemento actual a la variable $clave en cada iteracin. Ejemplo <?php $listado = array(1, 2, 3, 4, 5);

24

foreach($listado as $numeros){ print $numeros."<br />"; } ?> Ejemplo:En este caso, el array, no solo tiene una lista de valores, sino que tiene el nombre al que corresponde el valor: nombre => Pepe, edad => 20. FOREACH nos permite obtener los dos campos: <?php $listado = array("nombre" => "Pepe", "edad" => 20); foreach($listado as $nombre => $valor){ print $nombre ." : ".$valor."<br />"; } ?> El resultado de esto sera: nombre: Pepe edad: 20

25

Matrices o Arrays (Arreglos) de dos Dimensiones


L6as matrices son arrays de dos dimensiones.

Columna
2 8 7 4 3 3 2 1

0 0 1 6 3

1 14 19 13

Fila

1 2

En una matriz normalmente hablamos de filas y columnas y decimos que la matriz tiene m filas y n columnas. As, cada elemento queda identificado por su fila i y su columna j. Por ejemplo, en la matriz que hemos mostrado anteriormente podramos decir que tenemos 3 filas (fila 0, fila 1 y fila 2) y cuatro columnas (columna 0, columna 1, columna 2, columna 3). Podramos decir que el elemento de la fila 1, columna 3 es igual a 2. De la misma manera podramos decir: $valor [0] [0] = 1; $valor [0] [1] = 14; $valor [0] [2] = 8; $valor [0] [3] = 3;

26

$valor [1] [0] = 6; $valor [1] [1] = 19; $valor [1] [2] = 7; $valor [1] [3] = 2; $valor [2] [0] = 3; $valor [2] [1] = 13; $valor [2] [2] = 4; $valor [2] [3] = 1; Ejempl:

<?php $animal[0][0] = "Perro"; $animal[0][1] = "Gato"; $animal[1][0] = "Lombriz"; $animal[1][1] = "Burro"; $animal[2][0] = "Murcilago"; $animal[2][1] = "Cocodrilo"; echo$animal[2][1]; echo"<br>" .$animal[0][0]; ?>
Resultado: Cocodrilo Perro

27

Otra forma de asignar valores a un array matriz es similar a la que ya describimos para los vectores.

<?php $animal = array( array("Perro", "Gato"), array("Lombriz", "Burro"), array("Murcilago", "Cocodrilo") ); echo$animal[2][1]; echo"<br>" . $animal[0][0]; ?>

28

Resultado: Cocodrilo Perro

Estructuras de control:
For Los bucles for son los ms complejos en PHP. Se comportan como sus homlogos en C. La sintaxis de un bucle for es: for (expr1; expr2; expr3) sentencia La primera expresin (expr1) es evaluada (ejecutada) una vez incondicionalmente al comienzo del bucle. En el comienzo de cada iteracin, se evala expr2. Si se evala como TRUE, el bucle contina y se ejecutan la/sy sentencia/s anidada/s. Si se evala como FALSE, finaliza la ejecucin del bucle. Al final de cada iteracin, se evala (ejecuta) expr3. Ejemlo:

29

<?php echo "<br> ejemplo 1--> "; for ($i = 1; $i <= 10; $i++) { echo " ". $i; } echo "<br>ejemplo 2 --> "; for ($i = 1; ; $i++) { if ($i > 10) { break; } echo " ". $i; } echo "<br>ejemplo 3 --> "; $i = 1; for (; ; ) {

30

if ($i > 10) { break; } echo " ". $i; $i++; } echo "<br>ejemplo 4 --> "; for ($i = 1, $j = 0; $i <= 10; $j += $i, print " ". $i, $i++); ?> Resultado: ejemplo 1--> 1 2 3 4 5 6 7 8 9 10 ejemplo 2 --> 1 2 3 4 5 6 7 8 9 10 ejemplo 3 --> 1 2 3 4 5 6 7 8 9 10 ejemplo 4 --> 1 2 3 4 5 6 7 8 9 10

31

while Los bucles while son el tipo ms sencillo de bucle en PHP. Se comportan igual que su contrapartida en C. La forma bsica de una sentencia while es: while (expr) sentencia El significado de una sentencia while es simple. Le dice a PHP que ejecute las sentencias anidadas, tanto como la expresin while se evale como TRUE. El valor de la expresin es verificado cada vez al inicio del bucle. A veces, si la expresin while se evala como FALSE desde el principio, las sentencias anidadas no se ejecutarn ni siquiera una vez. Al igual que con la sentencia if, se pueden agrupar varias instrucciones dentro del mismo bucle while rodeando un grupo de sentencias con corchetes, o utilizando la sintaxis alternativa: while (expr): sentencias ... endwhile;

32

Ejemplos: <?php echo "ejemplo 1 -->: "; $i = 1; while ($i <= 10) { echo $i++; /* el valor presentado sera $i antes del incremento (post-incremento) */ } echo "<br>ejemplo 2 -->: "; $i = 1; while ($i <= 10): echo $i; $i++; endwhile; ?>

33

Continue continue se utiliza dentro de las estructuras iterativas para saltar el resto de la iteracin actual del bucle y continuar la ejecucin en la evaluacin de la condicin, y luego comenzar la siguiente iteracin. continue acepta un argumento numrico opcional, que indica a cuntos niveles de bucles encerrados se ha de saltar al final. El valor por omisin es 1, por lo que salta al final del bucle actual. Esta instruccin es aplicable tanto a bucles for como a los de tipo while o do while. Ejemplo: En este supuesto (condicin de mltiplo de dos) se activar la opcin continue y por lo tanto en esa iteracin no se ejecuta la instruccin echo y en consecuencia no se imprimirn en pantalla los mltiplos de 2. <?php for ($i=0;$i<=10;$i++){ #condicin de mltiplo de 2 if ($i % 2 ==0 ) { continue ;

34

} echo "La variable I vale ",$i,"<br>"; } ?> Resultado: La variable I vale 1 La variable I vale 3 La variable I vale 5 La variable I vale 7 La variable I vale 9 Ejemplo: Este otro ejemplo (caso de bucle while) la condicin establecida para que se ejecute continue es que el valor de la variable no sea mltiplo de tres, en cuyo caso echo slo imprimir los mltiplos de 3.

35

<?php $i = 0; while ($i++ < 14) { #condicin de no mltiplo de 3 usando para distinto la sintaxis != if ($i % 3 !=0){ continue ; } echo "El valor de i es: ",$i,"<br>"; } ?> Ejemplo: En este nuevo ejemplo utilzaremos un bucle do ...while para presentar en pantalla los mltiplos de 11. <?php $i = 0; do {

36

# condicin de no mltiplo de 11. fjate en la sintaxis alternativa # observa que aqu distinto lo hemos escrito <> if ($i % 11 <>0 ){ continue ; } echo"El valor de i es: ",$i,"<br>"; }while ($i++ < 100) ?> Resultado: El valor de i es: 0 El valor de i es: 11 El valor de i es: 22 El valor de i es: 33 El valor de i es: 44 El valor de i es: 55

37

El valor de i es: 66 El valor de i es: 77 El valor de i es: 88 El valor de i es: 99 if El constructor if es una de las caractersticas ms importantes de muchos lenguajes, incluido PHP. Permite la ejecucin condicional de fragmentos de cdigo. PHP dispone de una estructura if que es similar a la de C:

if (expr) sentencia Ejemplo: <?php $a = 12; $b = 10;

38

if ($a > $b) { echo "a es mayor que b"; } ?> Resultado: a es mayor que b else Con frecuencia se desea ejecutar una sentencia si una determinada condicin se cumple y una sentencia diferente si la condicin no se cumple. Esto es para lo que se utilizaelse. El else extiende una sentencia if para ejecutar una sentencia en caso que la expresin en la sentencia if se evale como FALSE. Por ejemplo, el siguiente cdigo deber mostrar a es mayor que b si $a es mayor que $b y aNO es mayor que b en el caso contrario:

39

<?php $a = 10; $b = 14; if ($a > $b) { echo "a es mayor que b"; } else { echo "a NO es mayor que b"; } ?> Switch La sentencia switch es similar a una serie de sentencias IF en la misma expresin. En muchas ocasiones, es posible que se quiera comparar la misma variable (o expresin) con muchos valores diferentes, y ejecutar una parte de cdigo distinta dependiendo de a qu valor es igual. Para esto es exactamente la expresin switch. <?php $i = 1;

40

switch ($i) { case 0: echo "i es igual a 0"; break; case 1: echo "i esigual a 1"; break; case 2: echo "i es igual a 2"; break; } ?> Resultado: i es igual a 1

41

Ejemplo:Estruturaswitch permite el uso de strings <?php $i = "pastel"; switch ($i) { case "manzana": echo "i es una manzana"; break; case "barra": echo "i es una barra"; break; case "pastel": echo "i es un pastel"; break; } ?>

42

Resultado: i es un pastel

43

S-ar putea să vă placă și