CLASE ArreglosFuncionesPoo

31
USO DE ARRAYS EN PHP POR: ING. HÉCTOR GONZÁLEZ

description

Arreglos en PHP

Transcript of CLASE ArreglosFuncionesPoo

  • USO DE ARRAYS EN PHPPOR: ING. HCTOR GONZLEZ

  • ArreglosUn array en PHP es realmente un mapa ordenado. Un mapa es un tipo de datos que asociavalores con claves. Este tipo es optimizado para varios usos diferentes; puede ser usado comouna matriz real, una lista (vector), una tabla asociativa (una implementacin de un mapa),diccionario, coleccin, pila, cola, y posiblemente ms. Ya que los valores de un array pueden serotros arrays, rboles y tambin son posibles arrays multidimensionales.

    Una explicacin sobre tales estructuras de datos est fuera del alcance de este manual, peroencontrar al menos un ejemplo de cada uno de ellos. Para ms informacin, consulte la extensaliteratura que existe sobre este amplio tema.

    Definicin de manual de php en la web

  • Cmo crear un arreglo en php (vector)Un arreglo se puede crear de la siguiente manera:

    $arreglo = array (valor 1, valor 2, valor 3, valor 4);

    Tambin un arreglo se puede crear de la siguiente manera:

    $arreglo2= array('a' =>"A",'b' =>"B",'c' =>"C" );

    La diferencia esta en el tipo de ndice que tienen ambos, para el caso del arreglo $arreglo, los ndices van desde cero hasta 3, mientras que para el arreglo $arreglo2 los ndices van desde a hasta c.

    Podemos decir entonces que los arreglos similares a $arreglo son vectores o arreglos indexados por nmeros mientras que un arreglo como $arreglo2 son vectores o arreglos indexados por letras, a stos ltimos se les llama arreglos o vectores asociativos.

  • Arreglos indexados por nmeros.Ya se vio una forma de crear los arreglos, otra forma de generar un arreglo es agregando valores directamente en un ndice, por ejemplo:

    $arreglo[0]=valor1;

    $arreglo[1]=valor2; etc.

    Cabe mencionar que PHP maneja indistintamente los tipos de datos en una sola variable arreglo, razn por la cual en un vector se pueden almacenar diversos tipos de datos en cada uno de los ndices, por ejemplo agregaremos otro ndice a $arreglo.

    $arreglo[2]=3.14;

    $arreglo[3]=Simple valor;

    $arreglo[4]= 7;

    Entonces el arreglo $arreglo, posee los siguientes valores: valor1, valor2,3.14,Simple Valor, 7

  • Arreglos asociativosSon los indexados por letras, de igual forma que los indexados por nmeros hay otra forma de crearlos, por ejemplo escribiendo directamente en un ndice en especfico:

    $arreglo2[a]=Valor1;

    $arreglo2[b]=7;

    $arreglo2[c]=Valor3; ,etc..

    De igual manera, en cada ndice puede ir diversos tipos de datos, entonces para el arreglo $arreglo2, los ndices son: a,b,c y los valores son: Valor1, 7, Valor3 respectivamente.

  • Acceso a la informacin de los arreglosPara recuperar un valor de un vector o arreglo se puede hacer recuperando directamente el ndice, tanto para indexados por nmeros o asociativos:

    Tenemos:

    $arreglo= array (valor1,2,3,4, valor5);

    $arreglo2= array (a=> Valor1, b=>2, pos=>3, d=>4, x=valor5);

    Ambos tienen los mismos valores guardados con diferente ndice, en ambos casos imprimiremos el ultimo valor:

    echo El valor de . $arreglo[4]. es igual a . $arreglo2[x];

  • Acceso a todos los elementos del arregloEn el caso anterior se acceda a un elemento en especfico, en este caso accederemos a todos los elementos del arreglo:

    Para el siguiente caso: $arreglo= array (valor1,2,3,4, valor5);

    El acceso se hace por medio de un recorrido usando la estructura de control for

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

    echo $arreglo[$i];

    }

    Donde los valores de $i van desde cero hasta 4, y es por que todo ndice numrico parte de cero y el lmite es 4 por que son 5 elementos los que tiene el arreglo.

  • Acceso a todos los elementos del arregloPara el siguiente caso:

    $arreglo2= array (a=> Valor1, b=>2, pos=>3, d=>4, x=valor5);

    El acceso se hace por medio de un recorrido usando la estructura de control foreach

    foreach($arreglo2 as $key=>$value){

    echo $value;

    }

    Donde los valores de $key son los ndices y $value son los valores guardados, $key y $value son variables auxiliares en el bucle foreach.

  • Otra forma de impresinPHP posee una funcin primitiva que sirve para poder ver el contenido del arreglo, ejemplo;

    Tenemos:

    $arreglo= array (valor1,2,3,4, valor5);

    $arreglo2= array (a=> Valor1, b=>2, pos=>3, d=>4, x=valor5);

    Imprimiendo:

    print_r ($arreglo);

    print_r ($arreglo2);

    Esto imprime:

    Array ( [0] => valor1 [1] => 2 [2] => 3 [3] => 4 [4] => valor5 )Array ( [a] => Valor1 [b] => 2 [pos] => 3 [d] => 4 [x] => valor5 )

  • FUNCIONES APLICADAS A ARREGLOSPOR: ING. HCTOR GONZLEZ

  • Funciones para aplicar a arreglosEn ocasiones necesitaremos trabajar con el contenido de los arreglos para fines personales, o dependiendo de la finalidad del programa, hacerlo desde cero sera un trabajo tedioso cuando existen funciones predefinidas de php que pueden facilitar el trabajo.

    A continuacin se presentan las funciones ms usadas cuando se trabaja con arreglos.

  • Funciones:

    Funcin Descripcin

    current Devuelve el valor del elemento que indica el puntero actual

    Pos Igual que current

    reset Pasa el puntero al primer elemento de la matriz

    End Pasa el puntero al ltimo elemento de la matriz

    next Mueve el puntero al siguiente elemento

    Prev Mueve el puntero al elemento anterior

    count Devuelve el nmero de elementos de una matriz.

  • Funciones de ordenamientoasort() Ordena un array y mantiene la asociacin de ndices (menor a mayor)

    arsort() Ordena un array en orden inverso y mantiene la asociacin de ndices.

    krsort() Ordena un array por clave en orden inverso

    ksort() Ordena un array por clave

    natcasesort() Ordenar un array usando un algoritmo de "orden natural" insensible a maysculas-minsculas.

  • Funciones de ordenamientonatsort Ordena un array usando un algoritmo de "orden natural

    rsort Ordena un array en orden inverso

    shuffle Mezcla un array

    sort Ordena un array (menor a mayor)

  • Funciones en phpUna funcin es un bloque de cdigo que bien puede ser definido por el usuario o puede ser una funcin predefinida de php, como por ejemplo mysql_close(). Una funcin definida por el usuario se basa en la siguiente sintxis:

    //definicin de la funcin

    function abc($argumento1){

    $variable= $argumento1 + 3;

    print $variable;

    }

    //llamada a la funcin

    abc(4);

    //definicin de la funcinfunction abc($argumento1){$variable= $argumento1 + 3;return $variable;}//llamada a la funcin$var = abc(4);print $var

  • Funciones recursivasfunction recursividad($a)

    {

    if ($a < 20) {

    echo "$a\n";

    recursividad($a + 1);

    }

    }

    recursividad(15);

  • Ejemplo de funcin definida por usuarioCrear una funcin que imprima:

    Salario final de un empleado

    Descuentos aplicados

    Total en concepto de descuentos

    Como argumento de entrada se usar el salario base.

  • function calcular($salario){

    $renta = $salario * 0.1;

    $isss= $salario * 0.07;

    $afp = $salario * 0.04;

    $totdesc=$renta + $isss + $afp;

    print "Los descuentos aplicados son: \n";

    print "Renta= $renta Isss=$isss Afp= $afp

    Total de Descuentos = $totdesc";

    }

    //llamada a la funcin:

    calcular(350); // o bien calcular($salario);

  • Manejo de excepcionesUna excepcin es un camino secundario a seguir en caso de error, es decir si en nuestro cdigo sucede algo malo qu har?, pues una excepcin con el objetivo que el programa no se detenga.

    Las excepciones se lanzan en caso de que suceda un error con el siguiente cdigo:

    throw new exception (el posible error que esta ocurriendo);

    Y para poder mostrar los errores, los bloques de cdigo con posibilidad de presentar un error se ponen dentro del los bloques try {} catch {}

  • Bloques Try {} catch {}Dentro del bloque Try {} se escribe todo el cdigo probable de error, si acaso no hay error el programa contina normalmente, en caso de haber un error debera haberse lanzado la excepcin sin detener el programa, dicho error se capturo en el bloque catch {} .

    Para entender mejor, se presenta un ejemplo de una funcin que retorna el inverso de un nmero dado.

  • La funcin:function inverso ($x){

    if ($x==0){

    throw new Exception("Error al dividir por cero");

    }else{

    $r = 1/$x;

    return $r;

    }

    }

  • Llamado a la funcintry {

    print inverso(0);

    } catch (Exception $e) {

    print $e->getMessage();

    }

    //esto imprimir el inverso de un numero o bien el mensaje error al dividir por cero

  • Programacin Orientada a ObjetosQu es?

    La programacin orientada a objetos o POO es un paradigma de programacin que usa los objetos en sus interacciones, para disear aplicaciones y programas informticos .

    (Sn Google)

    En otras palabras es la programacin basada en objetos que en realidad son instancias a clases que a su vez son abstracciones de objetos del mundo real, por ejemplo, se crea la clase vehiculo (objeto del mundo real) que posee atributos color, marca, modelo, etc, las funciones principales de la clase son acelerar, frenar, arrancar, apagar, etc. Y el uso de esas funciones y atributos mediante un objeto que apunta a ellos eso es programacin orientada a objetos.

  • En la POOSe deben manejar los siguientes conceptos:

    Clase

    Atributo

    Funciones miembro o mtodos

    Constructores

    Destructores

    Objeto

    Herencia

    Encapsulamiento

    Sobrecarga

    Polimorfismo

  • Qu es una clase?Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la lectura de estas definiciones y la creacin de un objeto a partir de ella. Por ejemplo se va trabajar un programa donde se considerarn aspectos importantes del empleado.

    Para definir la clase empleado quedara mas o menos:

    class Empleado{

    // Declaracin de la propiedad o atributo

    public $nombres= un valor default';

    public function mostrarNombre() {// Declaracin del mtodo

    echo $this->nombres;

    }

    }

  • Qu es un atributo?Como la clase es la abstraccin del un objeto del mundo real, los atributos son las caractersticas de ese objeto que nos interesa guardar informacin.

    Por ejemplo para la clase empleado, nos interesara conocer su nombres, apellidos, salario, puesto, fecha inicio de trabajo y nit. Los atributos seran variables que almacenaran dicha informacin.

  • Mtodos (funciones miembro)Los mtodos son funciones dentro de la clase, relacionadas a las acciones que realiza el objeto del mundo real del cual se saco la abstraccin.

    En el caso de la clase empleado, unos de los mtodos que podra tener la clase son:

    Function CrearEmpleado() { }

    Function Calcular_Salario(){ }

    Function Dar_de_Baja($empleado){}, etc

  • Cmo hacer uso de los atributos en los mtodos?En base a la siguiente clase XYZ

    Class XYZ{

    $atribA=25;function Imprime(){

    Print $this->atribA;

    }

    }

  • ObjetosUn objeto es la instancia a una clase. Si se tiene la siguiente clase:

    Class XYZ{

    $atribA=25;function Imprime(){

    Print $this->atribA;

    }

    }

    //creando el objeto

    $variableObjeto = new XYZ();

  • Cmo llamar desde afuera de la clase a los mtodos dentro de las clases?Por ejemplo, se tiene la clase:

    Class XYZ{

    $atribA=25;function Imprime(){

    Print $this->atribA;

    }

    }

    //llamado al mtodo

    $Objeto = new XYZ(); //Creacin del objeto

    $objeto -> Imprime();

  • Ejercicio:Desarrollar una clase Vehculo y crearle 5 atributos y al menos 4 mtodos.