<?php class ClaseSencilla { // Declaración de una propiedad public $var = 'un valor predeterminado'; // Declaración de un método public function mostrarVar() { echo $this->var; } public function __construct($var = "Instancia por defecto") { $this->var = $var; } public function __destruct() { //Si hay algo que destruir } } $instancia = new ClaseSencilla("Instancia 1"); $instancia->mostrarVar(); $otraInstancia = new ClaseSencilla("Instancia 2"); $otraInstancia->mostrarVar(); $otraMas = new ClaseSencilla(); $otraMas->mostrarVar(); //Visibilidad /** * Definición de MyClass */ class MyClass { public $variablePublica = 'Public'; protected $variableProtegida = 'Protected'; private $variablePrivada = 'Private'; function printHello() { echo $this->variablePublica; echo $this->variableProtegida; echo $this->variablePrivada; } } $obj = new MyClass(); echo $obj->variablePublica; // Funciona bien //echo $obj->variableProtegida; // Error Fatal //echo $obj->variablePrivada; // Error Fatal $obj->printHello(); // Muestra Public, Protected y Private /** * Definición de MyClass2 */ class MyClass2 extends MyClass { // Se pueden redeclarar las propiedades pública y protegida, pero no la privada public $public = 'Public2'; //protected $protected = 'Protected2'; function printHello() { echo $this->public; echo $this->protected; // echo $this->private; // Undefined } } $obj2 = new MyClass2(); echo $obj2->public; // Funciona bien //echo $obj2->protected; // Error Fatal //echo $obj2->private; // Undefined $obj2->printHello(); // Muestra Public2, Protected2, Undefined ?>