variable de llamada php oop de la clase [cerrado]

¿Cómo puedo llamar a una variable que está dentro de una clase a otro ejemplo de archivo:

controller.php

<?php 
    class hello {
        public $var = 1;

        public function a(){
            ......
        }

        public function b(){
            .....
        }
    }
?>

index.php

<?php
    $hello = new hello;
    //how to call the $var ? HERE
?>

preguntado el 22 de mayo de 12 a las 18:05

2 Respuestas

Así:

$hello->var = 2

O para recuperar el valor:

$val = $hello->var;

contestado el 22 de mayo de 12 a las 18:05

If var es público puedes hacer esto:

$hello->var = $value;
$value = $hello->var;

Por lo general, no desea acceder directamente a los miembros de la clase. Podrías hacer getters y setters:

class hello{
    private $var;

    ...

    function getVar(){
        return $var;
    }

    function setVar($value){
        $var = $value;
    }
}

Entonces puedes hacer esto:

$hello->getVar();
$hello->setVar($newVarValue);

PHP también tiene funciones mágicas __get() y __set() que permiten el acceso a miembros inaccesibles. Esto es básicamente lo mismo que getter y setter, pero puede salirse con la suya con una función en lugar de múltiples funciones para cada miembro (aunque puede complicarse si no se mantiene correctamente).

Así que en tu clase puedes hacer esto:

class hello{
    private $var;

    ...

    function __get($name){
        if($name == 'var')
            return $var;
    }

    function __set($name, $value){
        if($name == 'var')
            $var = $value;
    }
}

pero aún puede acceder a los miembros de esta manera:

$hello->var = $value;
$value = $hello->var;

aunque $var es privado.

contestado el 22 de mayo de 12 a las 18:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.