1

次のスクリプトでは、オブジェクトのメソッドを$var_1使用$var_2して値を設定しようとしています。しかし、そのオブジェクトに設定された値を取得するために get メソッドを呼び出すと、空白が返されます。何故ですか ?set$obj

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

$thisPHP では が必要です。それ以外の場合は、ローカル変数を参照しています。

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 に答える