Php 5

Solo disponible en BuenasTareas
  • Páginas : 5 (1108 palabras )
  • Descarga(s) : 0
  • Publicado : 28 de septiembre de 2010
Leer documento completo
Vista previa del texto
PHP5 Orientado a Objetos
Hola a todos, en esta ocasión les traigo a ustedes un poco de información acerca de las mejoras introducidas en PHP5 las cuales son principalmente la orientación a objetos que está muy bien lograda en esta nueva versión. Primero debemos entender algunos conceptos de la programación orientada a objetos, comencemos con los constructores. ¿Qué es un constructor? Unconstructor es una función que se ejecuta cada vez que se instancia un objeto de una clase. En PHP4 el nombre de dicha función debía ser identifica al nombre de la clase, pero en PHP5, ya existe un nombre unificado para definir un constructor: __construct.
class ClaseA { var $a; function __construct() { $this->a = true; }

}

$Objeto = new ClaseA();

Si PHP no encuentra este nombre de función,buscará un método que se llame igual que la clase, tal y como lo hacía en PHP4. De esta misma manera en PHP5 se incluyeron los destructores, pero ¿sabes que es un destructor? ¿Qué es un destructor? Pues son muy similares que los constructores. Son funciones que ejecutan tareas que necesitamos hacer cuando un objeto ya no está siendo referenciado por ninguna variable, antes de liberar memoria. Elnombre unificado de los destructores es: __destruct.
class ClaseA { var $a; function __construct() { $this->a = true; } function __destruct() { echo "Objeto Destruido"; } } $Objeto = new ClaseA();

Los destructores incluyen un código que se ejecuta cuando un objeto se elimina de la memoria.

www.milkzoft.com

Modificadores de acceso Bueno vamos entrando en calor, otras de las mejoras que seincluyeron en PHP5 son los modificadores (public, prívate y protected) de acceso sobre las propiedades y los métodos. Public: la propiedad o método es accesible desde cualquier ámbito, incluyendo otras claves. Private: la propiedad o método solo es accesible desde dentro de la clase a la que pertenece. Protected: la propiedad o método sólo es accesible desde dentro de la clase a la que pertenece odesde cualquier clase que derive de ella.
class ClaseA { public $a; protected $b; private $c; function __construct() { $this->b = 100; } function GetB() { return $this->b; }

}

$Objeto = new ClaseA(); echo $Objeto->GetB();

En la versión anterior PHP4, todas las variables y las funciones son públicas. En PHP4, las propiedades se declaraban mediante la palabra reservada var (sinónimo depublic) y los métodos se definían con su nombre y argumentos. Así como existen las propiedades de un objeto, también existen las propiedades de una clase (se definen por la palabra static), cuyos valores no dependen específicamente de una instancia en particular. El acceso a los atributos de clase se realiza utilizando el operador ::, y para eso no es necesario instanciar la clase.
class ClaseA {static $Propiedad = 15; static function ShowValue () { echo ClaseA::$Propiedad; }

}

ClaseA::ShowValue();

www.milkzoft.com

Nuevos Métodos Un Nuevo método que incluye PHP5 es __call, que se ejecuta de manera automática en caso de llamar un método que no está definido en la clase.
class ClaseA { public $a; function __construct() { $this->a = 100; } function GetA() { return $this->a; }function __call($metodo, $atributos) { echo "El Método $metodo no existe"; }

}

$Objeto = new ClaseA(); echo $Objeto->GetB();

El método __call recibe dos argumentos automáticos: el nombre del método inexistente y los parámetros pasados a él en forma de array. Los métodos __set y __get, en caso de estar definidos, serán invoados cuando se intente acceder, o modificar, el valor de algunapropiedad no declarada en la clase. Clonación de objetos Cuando se crea una instancia de una clase y se asigna esa instancia a otra variable, se dice que se crea un alias del objeto.
$ObjetoA = new ClaseA(); $ObjetoB = $ObjetoA;

No se duplica el objeto entero como sucedía en PHP4, donde, si queríamos referenciar objetos, debíamos hacerlo de forma explícita.
$ObjetoA =& new ClaseA(); $ObjetoB =&...
tracking img