PHP oop 从类调用变量


php oop call variable from class

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

控制器.php

<?php 
    class hello {
        public $var = 1;
        public function a(){
            ......
        }
        public function b(){
            .....
        }
    }
?>

索引.php

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

就像这样:

$hello->var = 2

或者检索值:

$val = $hello->var;

如果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(( 和 __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是私人的。