05/05/2013, 09:41
|
| | | Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 17 años Puntos: 20 | |
Respuesta: Duda de php Cita:
Iniciado por XD2XD2 Ok, ya lo entendi y muchisimas gracia. Creo que ya entendi el public private y protect.
Public, con public si puedes ponerlo en $variable -> funcion();
Private, con private no puedes, sirve para por ejemplo hacer esto:
<?php
class php(){
private $variable;
private function a(){
echo "Hola";
}
public function __construct(){
$this->variable->a();
}
}
?>
Protect: solo se puede utilizar en una class, si hago 2 clases, solo puedo utilizarla en la class que lo haya definido. Lol No ... http://php.net/manual/es/language.oop5.visibility.php Cita: La visibilidad de una propiedad o método se puede definir anteponiendo una de las palabras claves public, protected o private en la declaración. Miembros de clases declarados como public pueden ser accedidos de cualquier lado. Miembros declarados como protected, sólo de la clase misma, por herencia y clases parent. Aquellos definidos como private, únicamentede la clase que los definió. Ejemplo de Public: Código PHP: <?php
class MyClass
{
public $pageTitle = "OOP PPP"; // Visible por todos los sitios
private $pageName = "PHP"; // Visible SOLO en esta clase
protected $pageUrl = "http://"; // Visible solo en esta clase y las clases que le hereden
}
class SecondClass extends MyClass
{
public function __construct()
{
echo $this->pageTitle . "<br />"; // Se ve
echo $this->pageName . "<br />"; // Notice: Undefined property: SecondClass::$pageName ( NO tienes acceso a esta variable )
echo $this->pageUrl . "<br />"; // se ve por que tiene de herencia a la clase MyClass
}
}
class OtherClass
{
public function __construct()
{
$mc = new MyClass();
echo $mc->pageTitle . "<br />"; // Se ve
echo $mc->pageName . "<br />"; // Fatal error: Cannot access private property MyClass::$pageName ( NO tienes acceso a esta variable )
echo $mc->pageUrl . "<br />"; // Fatal error: Cannot access protected property MyClass::$pageUrl ( NO tienes acceso a esta variable )
}
}
?> |