php oop来自类的调用变量

时间:2012-05-22 17:01:10

标签: php oop class getter-setter

如何将类中的变量调用到另一个文件中 例如:

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

2 个答案:

答案 0 :(得分:5)

就像这样:

$hello->var = 2

或者检索值:

$val = $hello->var;

答案 1 :(得分:3)

如果var公开,您可以执行此操作:

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

通常,您不希望直接访问类成员。你可以制造吸气剂和制定者:

class hello{
    private $var;

    ...

    function getVar(){
        return $var;
    }

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

然后你可以这样做:

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

PHP还具有魔术函数__get() and __set(),允许访问不可访问的成员。这基本上与getter和setter相同,但你可以为每个成员使用一个函数而不是多个函数(如果没有正确维护,它可能会变得混乱)。

所以在你的班上你可以这样做:

class hello{
    private $var;

    ...

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

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

但你仍然可以访问这样的成员:

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

即使$var是私有的。