Tema: Duda de php
Ver Mensaje Individual
  #7 (permalink)  
Antiguo 05/05/2013, 09:41
Avatar de bulter
bulter
 
Fecha de Ingreso: enero-2008
Mensajes: 137
Antigüedad: 17 años
Puntos: 20
Respuesta: Duda de php

Cita:
Iniciado por XD2XD2 Ver Mensaje
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 )
    
}
}


?>