<?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
?>