Constantes PHP

43
1 Constantes PHP Sintaxis Se puede definir una constante usando la función define(). Una vez que la constante está definida, no puede ser cambiada o redifinida en ningún 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 dólar ($), como prefijo. Las constantes pueden ser definidas usando la función define(), y no por simple asignación. 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 deberían contener valores escalares.

Transcript of Constantes PHP

Page 1: Constantes PHP

1

Constantes PHP

Sintaxis

Se puede definir una constante usando la función define().

Una vez que la constante está definida, no puede ser cambiada o redifinida en ningún 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 dólar ($), como prefijo. Las constantes pueden ser definidas usando la función define(), y no por simple

asignación. 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 deberían contener valores escalares.

Page 2: Constantes PHP

2

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 - assumed 'Saludo' in C:\xampp\htdocs\prueba\index.php on line 4

Saludo

Por convención se utilizan nombres en mayúscula. Lasconstantes no pueden ser reescritas, es decir, si definimos 2 constantes con el mismo nombre siempre va a tomar

Page 3: Constantes PHP

3

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');

?>

Constantes de Clases

Es posible definir valores constantes en función de cada clase manteniéndola invariable.

El valor debe ser una expresión constante, no una variable, una propiedad, un resultado de una operación matemática, o una llamada a una función.

<?php class Saludo {

Nuestro script PHP va a interpretar la constante SALUDAR con la primera información definida en ella, es decir Hola mundo.

Page 4: Constantes PHP

4

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 PHP Hola, esto es PHP Hola, esto es PHP Hola, esto es PHP

Page 5: Constantes PHP

5

Variables

En PHP las variables se representan con un signo de dólar seguido por el nombre de la variable. El nombre de la variable es sensible a minúsculas y mayúsculas.

Un nombre de variable válido tiene que empezar con una letra o un carácter de subrayado (underscore), seguido de cualquier número de letras, números y caracteres de subrayado.

Nota: $this es una variable especial que no puede ser asignada.

<?php $var = 'Roberto'; $Var = 'Juan'; echo "$var, $Var"; // imprime "Roberto, Juan" $4site = 'aun no'; // inválido; comienza con un número $_4site = 'aun no'; // válido; comienza con un carácter de subrayado

?>

PHP también ofrece otra forma de asignar valores a las variables: asignar por referencia.

Page 6: Constantes PHP

6

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 código produce la salida 'Mi nombre es Bob' dos veces:

<?php $miNombre= 'Bob'; // Asigna el valor 'Bob' a $miNombre $otroNombre = &$miNombre; // Referenciar $miNombre vía $bar. $otroNombre = "Mi nombre es $otroNombre "; // Modifica $otroNombre echo $otroNombre ."<br>"; echo $miNombre; // $miNombre también se modifica.

?> Algo importante a tener en cuenta es que sólo las variables con nombre pueden ser asignadas por referencia.

No es necesario inicializar variables en PHP, sin embargo, es una muy buena práctica.

Á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 sólo tienen un ámbito simple. Este ámbito simple también abarca los ficheros incluidos y los requeridos. Por ejemplo:

Page 7: Constantes PHP

7

<?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 función. Cualquier variable usada dentro de una función está, por omisión, limitada al ámbito local de la función. 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

Page 8: Constantes PHP

8

Este script no producirá salida, ya que la sentencia echo utiliza una versión local de la variable $a, a la que no se ha asignado ningún valor en su ámbito.

En PHP, las variables globales deben ser declaradas globales dentro de la función si van a ser utilizadas dentro de dicha función.

Ejemplo: Uso de global

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

?>

Page 9: Constantes PHP

9

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. 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;

?>

Page 10: Constantes PHP

10

Uso de variables static ¶

Otra característica importante del ámbito de las variables es la variable estática. 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:

Ejemplo: Ejemplo que demuestra la necesidad de variables estáticas

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

?>

Page 11: Constantes PHP

11

Esta función 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 función finaliza, la variable $a desaparece.

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:

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

?>

Page 12: Constantes PHP

12

Ahora, $ase inicializa únicamente en la primera llamada a la función, y cada vez que la función test() es llamada, imprimirá el valor de $a y lo incrementa.

Nota:

Las variables estáticas 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 análisis sintáctico.

Ejemplo #7 Declaración de variables estáticas

<?php function foo(){ static $int = 0; // correcto static $int = 1+2; // incorrecto (ya que es una expresión) static $int = sqrt(121); // incorrecto (es una expresión también) $int++; echo $int; }

?>

Page 13: Constantes PHP

13

Variables Dinámicas 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 dinámicas, 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

?>

Page 14: Constantes PHP

14

Tipos de datos

Booleanos

Este es el tipo más 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 mayúsculas y minúsculas.

<?php $foo = True; // asigna el valor TRUE a $foo

?> Enteros Un entero o integer es un número del conjunto ℤ = {..., -2, -1, 0, 1, 2, ...}.

Sintaxis

Page 15: Constantes PHP

15

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

Ejemplo: Enteros literales

<?php $a = 1234; // número decimal $a = -123; // un número negativo $a = 0123; // número octal (equivalente a 83 decimal) $a = 0x1A; // número hexadecimal (equivalente a 26 decimal) $a = 0b11111111; // número 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

Page 16: Constantes PHP

16

echo $a + $b; //el resultato es 0 ?>

El tipo de dato flotante

Con Php tenemos la ventaja que los tipos de datos flotantes conocidos también como "números de punto flotantes", "dobles" o "números reales" no se declarar como en otras lenguaje de programación.

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

Page 17: Constantes PHP

17

echo $a / 4 . "<br />"; //el resultato es 2.5 echo $b / 4; //el resultato es 2.5 ?> El tipo de dato cadena Una cadena, conocida también como string, representa una serie de caracteres donde un carácter 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";

Page 18: Constantes PHP

18

<?php echo 'Esto es una cadena sencilla'; echo 'Tambien puede incluir nuevas líneas 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 línea echo '<br>Esto no se expandirá: \n una nueva línea'; // Resultado: Las variables $tampoco se $expandiran echo '<br>Las variables $tampoco se $expandiran'; ?>

Page 19: Constantes PHP

19

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 función gettype ( ) se puede utilizar para determinar el tipo actual de una variable y la función 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; //a la variable $b se asigna el numero 5

echogettype ($b); //el tipo de dato es un entero

Page 20: Constantes PHP

20

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.

Page 21: Constantes PHP

21

Sintaxis

Especificación con array()

Un array puede ser creado usando el constructor del lenguaje array(). Éste toma un cierto número de parejas clave => valor como argumentos.

A partir de PHP 5.4 también 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 = [

Page 22: Constantes PHP

22

"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.

Page 23: Constantes PHP

23

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 función muestra información estructurada sobre una o más 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) }

Page 24: Constantes PHP

24

foreach

El constructor foreach proporciona un modo sencillo de iterar sobre arrays. foreach funciona sólo 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 (expresión_array as $valor)

sentencias

2. foreach (expresión_array as $clave => $valor)

sentencias

La primera forma recorre el array dado por expresión_array. En cada iteración, el valor del elemento actual se asigna a $valor y el puntero interno del array avanza una posición (así en la próxima iteración se estará observando el siguiente elemento).

La segunda forma además asigna la clave del elemento actual a la variable $clave en cada iteración.

Ejemplo

<?php

$listado = array(1, 2, 3, 4, 5);

Page 25: Constantes PHP

25

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 sería:

nombre: Pepe

edad: 20

Page 26: Constantes PHP

26

Matrices o Arrays (Arreglos) de dos Dimensiones

L6as matrices son arrays de dos dimensiones.

0 1 2 3

0 1 14 8 3

1 6 19 7 2

2 3 13 4 1

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 podríamos decir que tenemos 3 filas (fila 0, fila 1 y fila 2) y cuatro columnas (columna 0, columna 1, columna 2, columna 3). Podríamos decir que el elemento de la fila 1, columna 3 es igual a 2. De la misma manera podríamos decir:

$valor [0] [0] = 1; $valor [0] [1] = 14; $valor [0] [2] = 8; $valor [0] [3] = 3;

Fila

Columna

Page 27: Constantes PHP

27

$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] = "Murciélago"; $animal[2][1] = "Cocodrilo"; echo$animal[2][1]; echo"<br>" .$animal[0][0];

?> Resultado:

Cocodrilo

Perro

Page 28: Constantes PHP

28

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("Murciélago", "Cocodrilo")

);

echo$animal[2][1];

echo"<br>" . $animal[0][0];

?>

Page 29: Constantes PHP

29

Resultado:

Cocodrilo

Perro

Estructuras de control:

For

Los bucles for son los más complejos en PHP. Se comportan como sus homólogos en C. La sintaxis de un bucle for es:

for (expr1; expr2; expr3)

sentencia

La primera expresión (expr1) es evaluada (ejecutada) una vez incondicionalmente al comienzo del bucle.

En el comienzo de cada iteración, se evalúa expr2. Si se evalúa como TRUE, el bucle continúa y se ejecutan la/sy sentencia/s anidada/s. Si se evalúa como FALSE, finaliza la ejecución del bucle.

Al final de cada iteración, se evalúa (ejecuta) expr3.

Ejemlo:

Page 30: Constantes PHP

30

<?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 (; ; ) {

Page 31: Constantes PHP

31

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

Page 32: Constantes PHP

32

while

Los bucles while son el tipo más sencillo de bucle en PHP. Se comportan igual que su contrapartida en C. La forma básica 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 expresión while se evalúe como TRUE. El valor de la expresión es verificado cada vez al inicio del bucle.

A veces, si la expresión while se evalúa como FALSE desde el principio, las sentencias anidadas no se ejecutarán 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;

Page 33: Constantes PHP

33

Ejemplos:

<?php

echo "ejemplo 1 -->: ";

$i = 1;

while ($i <= 10) {

echo $i++; /* el valor presentado sería

$i antes del incremento

(post-incremento) */

}

echo "<br>ejemplo 2 -->: ";

$i = 1;

while ($i <= 10):

echo $i;

$i++;

endwhile;

?>

Page 34: Constantes PHP

34

Continue

continue se utiliza dentro de las estructuras iterativas para saltar el resto de la iteración actual del bucle y continuar la ejecución en la evaluación de la condición, y luego comenzar la siguiente iteración.

continue acepta un argumento numérico opcional, que indica a cuántos niveles de bucles encerrados se ha de saltar al final. El valor por omisión es 1, por lo que salta al final del bucle actual.

Esta instrucción es aplicable tanto a bucles for como a los de tipo while o do while.

Ejemplo:

En este supuesto (condición de múltiplo de dos) se activará la opción continue y por lo tanto en esa iteración no se ejecuta la instrucción echo y en consecuencia no se imprimirán en pantalla los múltiplos de 2.

<?php

for ($i=0;$i<=10;$i++){

#condición de múltiplo de 2

if ($i % 2 ==0 ) {

continue ;

Page 35: Constantes PHP

35

}

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 condición establecida para que se ejecute continue es que el valor de la variable no sea múltiplo de tres, en cuyo caso echo sólo imprimirá los múltiplos de 3.

Page 36: Constantes PHP

36

<?php

$i = 0;

while ($i++ < 14) {

#condición de no múltiplo 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 múltiplos de 11.

<?php

$i = 0;

do {

Page 37: Constantes PHP

37

# condición de no múltiplo de 11. fíjate 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

Page 38: Constantes PHP

38

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 características más importantes de muchos lenguajes, incluido PHP. Permite la ejecución condicional de fragmentos de código. PHP dispone de una estructura if que es similar a la de C:

if (expr)

sentencia

Ejemplo:

<?php

$a = 12;

$b = 10;

Page 39: Constantes PHP

39

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 condición se cumple y una sentencia diferente si la condición no se cumple. Esto es para lo que se utilizaelse. El else extiende una sentencia if para ejecutar una sentencia en caso que la expresión en la sentencia if se evalúe como FALSE.

Por ejemplo, el siguiente código deberá mostrar a es mayor que b si $a es mayor que $b y aNO es mayor que b en el caso contrario:

Page 40: Constantes PHP

40

<?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 expresión. En muchas ocasiones, es posible que se quiera comparar la misma variable (o expresión) con muchos valores diferentes, y ejecutar una parte de código distinta dependiendo de a qué valor es igual. Para esto es exactamente la expresión switch.

<?php

$i = 1;

Page 41: Constantes PHP

41

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

Page 42: Constantes PHP

42

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;

}

?>

Page 43: Constantes PHP

43

Resultado:

i es un pastel