parte_26.txt
Document Details

Uploaded by AutonomousHeliotrope
Full Transcript
Antonio Campos Serna 36 TEMARIO OPOSICIONES COIICV | TEMA 29 • switch: Es una variante de la bifurcación if … else if … else cuando se utiliza la misma expresión y se compara con distintos valor es. switch ( expresión ) { case valor_1: sentencias_A; break; case valor_2: sentencias_B; break; case...
Antonio Campos Serna 36 TEMARIO OPOSICIONES COIICV | TEMA 29 • switch: Es una variante de la bifurcación if … else if … else cuando se utiliza la misma expresión y se compara con distintos valor es. switch ( expresión ) { case valor_1: sentencias_A; break; case valor_2: sentencias_B; break; case valor_3: sentencias_C; break; default: sentencias_D; } Cada sentencia case debe corresponderse con un valor concreto, no se p uede comparar con rangos ni expresiones relacionales. Si la expresión no coincide con ningún valor y exis te la sentencia default , se ejecutan las instrucciones correspondientes (en este ejemplo sentencias_D ), si no existe, no se ejecuta ninguna instrucción. La sentencia break hace que se salga del bloque switch. Si no existe para alguna de las sentencias case la ejecución continúa con las sentencias del sigui ente bloque case. 3.3.4.2. Bucles Se utilizan para ejecutar un conjunto de sentencias repetidas veces. • while: Las sentencias del bloque se ejecutan mientr as la expresión se evalúe a verdadero. while ( expresión ) { Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Tecnologías para el desarrollo de aplicaciones. MS. NET, JAVA y PHP TEMARIO OPOSICIONES COIICV | TEMA 29 37 sentencias; } Cuando el código PHP se ejecuta embebido en una pág ina HTML, existe una sintaxis alternativa: • do … while: se asegura que las sentencias del bucle se ejecutan al menos una vez. do { sentencias; } while ( expresión ); Las sentencias se vuelven a ejecutar mientras la ex presión se evalúe a verdadero. • for: En un bucle for, se indica el número de iterac iones que las sentencias deben ejecutarse. for ( inicialización; expresión; incremento) { sentencias; } Las sentencias de inicialización se ejecutan al inicio del bucle, antes de cada iteración se evalúa la expresión , si es verdadera se ejecutan las sentencias y si es falsa finaliza la ejecución del blucle. Las sentenc ias de incremento se ejecutan después de las sentencias del bucle. Cuando el código PHP se ejecuta embebido en una pág ina HTML, existe una sintaxis alternativa: Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Antonio Campos Serna 38 TEMARIO OPOSICIONES COIICV | TEMA 29 • foreach: Es una implementación especial de los bucl es for que nos permite iterar de forma sencilla sobre los elementos de un array. foreach( expresion_array as $valor ){ sentencias; } Ejecuta el bucle para todos los elementos del array . Existe una sintaxis alternativa que nos permite rec uperar tanto el valor del elemento del array como el índice. foreach( expresion_array as $indice => $valor ){ sentencias; } En los bucles también se puede utilizar la sentenci a break para salir de ellos. También se puede utilizar la sentencia continue para interrumpir la ejecución de una iteración, vo lver a evaluar la expresión y si corresponde, ejecutar las sentencias . 3.3.5. Arrays Los arrays son tipos de datos que permiten, bajo un mismo nombre de identificador, almacenar un conjunto de valores. Al igual que el resto de varia bles, en PHP no es necesario declarar un array antes de empezar a utilizarlo, tampoco es necesario reservar memoria para el mismo. Una característica particular de PHP es que existen dos formas de indexar (4) los arrays: • Indexación numérica: se accede a los elementos del array por medio de un índice numérico. El índice empieza en el valor 0. $productos = array (‘Tornillos’, ‘Clavos’, ‘Martill o’); echo $productos[1]; // Clavos $productos[] = ‘Tuercas’; // $productos[3] = ‘Tuerc as’; • Indexación asociativa: la clave para acceder a los elementos del array es una cadena alfanumérica. $precios = array ( ‘Tornillos’ => 0.20, Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Tecnologías para el desarrollo de aplicaciones. MS. NET, JAVA y PHP TEMARIO OPOSICIONES COIICV | TEMA 29 39 ‘Clavos’ => 0.15, ‘Martillo’ => 17.50, ‘Tuercas’ => 0.25 ); echo $precios[‘Martillo’]; // 17.50 Para recorrer los elemento de un array podemos util izar las sentencias for y foreach (este es el único que se puede aplicar a los arrays asociativos ). Una de las funcionalidades que nos proporciona PHP es que incorpora una variada selección de funciones de ordenación de arrays: • sort() y rsort() : ordena en array (ascendente o descendentemente) e n función de sus valores. • asort() y arsort() : ordena en array (ascendente o descendentemente) e n función de sus valores. Se utiliza en arrays asociativos. • ksort() y krsort() : ordena en array (ascendente o descendentemente) e n función de sus claves. Se utiliza en arrays asociativos. En PHP también existen operadores espaciales para e l tratamiento de arrays: Tabla VII: Operadores para arrays Operador Función $a + $b Unión de los arrays $a y $b $a == $b Devuelve true si $a y $b tienen los mismos elementos $a === $b Devuelve true si $a y $b tienen los mismo s elementos y en el mismo orden $a != $b ó a <> $b Devuelve true si $a y $b no tienen los mismos eleme ntos $a !== $b Devuelve true si $a y $b tienen los mismo s elementos o no están en el mismo orden 3.3.6. Funciones y reutilización de código Como en otros lenguajes como C, las funciones en PH P encapsulan una porción de código que puede ser ejecutado desde cualquier parte del progr ama donde se invoque la función. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Antonio Campos Serna 40 TEMARIO OPOSICIONES COIICV | TEMA 29 Para definir una función se escribe la sentencia fu nction seguida del nombre de la función y la lista de parámetros entre paréntesis y el código entre ll aves. Hay que señalar que PHP no distingue entre mayúsculas y minúsculas cuando se trata del n ombre de funciones. Tampoco se permite sobrecargar el nombre de una función ni que estos e mpiecen por un número. Para invocar a una función, simplemente hay que esc ribir su nombre seguido de los parámetros entre paréntesis. function suma ( $a, $b ) { return ( $a + $b ); } echo suma(3, 5); // 8 PHP permite que se definan funciones con un número variable de parámetros, los obligatorios siempre se definen los primeros y los optativos tie nen un valor predeterminado. function calcula_iva ( $importe, $iva = 21) { return ( $importe * ( ( $iva / 100 ) + 1 ) ); } calcula_iva (1000); // 1210 calcula_iva (1000,4); // 1040 Los parámetros se pueden pasar por valor o por refe rencia. Si se pasan por valor, se hace una copia del parámetro de tal manera que si se modific a su valor dentro de la función no se ve alterado el valor original que tuviera antes de lla marla. Si pasamos los parámetros por referencia, en realidad se está pasando un puntero a la variabl e, de tal manera que si se modifica el valor dentro de la función también se modifica el valor o riginal. // Por valor function incrementa ( $valor, $incremento = 1 ) { $valor = $valor + $incremento; } a = 1; incrementa(a); Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Tecnologías para el desarrollo de aplicaciones. MS. NET, JAVA y PHP TEMARIO OPOSICIONES COIICV | TEMA 29 41 echo $a; // 1 // Por referencia function incrementa ( &$valor, $incremento = 1 ) { $valor = $valor + $incremento; } a = 1; incrementa(a); echo $a; // 2 Es posible reutilizar código de un script desarroll ado en un fichero en otro diferente. PHP incorpora sentencias similares a #include de C++: • include() : añade el código incluido en el fichero que se le pasa como parámetro. Si el fichero no existe continúa la ejecución del script. • require() : añade el código incluido en el fichero que se le pasa como parámetro. Si el fichero no existe detiene la ejecución del script. 3.3.7. Programación orientada a objetos en PHP Desde PHP 5 se incluye soporte completo para la pro gramación orientada a objetos. Al igual que en otros lenguajes que soportan la POO, PHP impleme nta las características principales de la POO: • Encapsulación: los atributos y/o métodos de los obj etos pueden estar ocultos (encapsulados) y no ser accesibles desde el exterio r del objeto. • Herencia: una clase puede ser definida a partir de otra, de manera que “herede” todos (o algunos) de sus atributos y métodos. • Polimorfismo: dentro de una jerarquía de clases, un mismo método puede comportarse de distinta manera para cada una de las clases. 3.3.7.1. Conceptos de Clase, Objeto e Interface Al igual que en otros lenguajes, en PHP una clase e s la definición de un tipo de dato donde se agrupan tanto los atributos (propiedades) que lo de finen como los métodos (comportamiento). Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Antonio Campos Serna 42 TEMARIO OPOSICIONES COIICV | TEMA 29 La definición de una clase se realiza: Un objeto es una instancia concreta de una clase, u na variable del tipo de dato “clase”. Una interface solamente contiene la declaración de los métodos sin su implementación y en su caso de constantes. Son las clases que heredan de l a interface las que están obligadas a implementarlos. 3.3.7.2. Atributos Los atributos son las propiedades de las clases, su s variables miembro. Cada objeto de la clase tiene su propia copia de todos los atributos. Al igual que en otros lenguajes, los atributos pued en definirse con los modificadores public , private y protected para restringir su nivel de acceso. En la siguient e tabla se especifican los tipos de acceso. Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Tecnologías para el desarrollo de aplicaciones. MS. NET, JAVA y PHP TEMARIO OPOSICIONES COIICV | TEMA 29 43 Tabla VIII: Modificadores de acceso a miembros public Se puede acceder desde fuera de la clase. private Sólo es accesible desde dentro de la propia clase. protected Se puede acceder desde la propia clase y las clases que heredan de ella. Las clases pueden tener variables propias de clase que son globales a todos los objetos de esa clase, se definen con el modificador static (por ejemplo un contador de objetos de dicha clase ). También se pueden definir constantes globales para la clase con el modificador const. El acceso a estas variable y constantes se realiza con el ope rador dos puntos-dos puntos ( ::). Se autoriza el uso exclusivo de este documento a María Amparo Pavía García, DNI 20013968N, a 26 de julio de 2019Antonio Campos Serna 44 TEMARIO OPOSICIONES COIICV | TEMA 29 3.3.7.3. Métodos Los métodos son funciones que definen el comportami ento de los objetos de una clase, actúan sobre los atributos. Se aplican siempre sobre el ob jeto que invoca a la función mediante el operador flecha ( ->). El propio objeto es un argumento implícito y se accede a sus atributos y métodos mediante la variable $this .