1

在以下脚本中,我尝试为 object 设置值$var_1$var_2使用该set方法$obj。但是当我调用 get 方法来检索为该对象设置的值时,我得到一个空白。这是为什么 ?

<?php
class Tester {

    public $var_1;
    public $var_2;

    public function set() {
        $var_1 = 20;
        $var_2 = "Tu jo aa jaaye..toh is ghar ko sawanrta dekhun";
    }

    public function get() {
        return "Var_1 is : {$var_1} and Var_2 is : {$var_2}";
    }
}

$obj = new Tester();
$obj_c = clone $obj;
$obj_nc = $obj;

$obj->set();
echo $obj->get();

echo $obj_nc->get();
4

1 回答 1

3

$this在 PHP 中是必需的。否则,您将引用局部变量。

public function someFunc()
{
    //$this->var and $var are in no way linked:
    $var = 1; //A local variable named $var with a value of 1
    $this->var = 2; // A property of $this object with a value of 2
}

附带说明一下,您应该一路发展display_errors Onerror_reporting一路向上。如果是这种情况,您会看到您引用了未定义变量的通知。(请注意,error_reporting 可以说应该在生产服务器上一直启动[如果您的代码是用它来编写的],但display_errors永远不应该On在生产环境中——应该使用日志。)

于 2013-02-18T02:18:10.653 回答