-6

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

控制器.php

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

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

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

索引.php

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

2 回答 2

5

像这样:

$hello->var = 2

或检索值:

$val = $hello->var;
于 2012-05-22T17:02:44.150 回答
3

如果var是公开的,您可以这样做:

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

通常,您不想直接访问类成员。您可以制作 getter 和 setter:

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是私人的。

于 2012-05-22T17:27:44.217 回答