ホームページ >バックエンド開発 >PHPチュートリアル >PHP クラスの関数と変数のスコープに関連する問題
PHP クラスの関数と変数スコープの問題
//コード 1
class Cart
{
var $owner;
function set_owner($ name )
{
$this->owner=$name;
}
}
?>
//コード 2
< ; ?php
$acart=new Cart;
$acart->set_owner("john");
print $acart->owner;
?>
コード1の関数set_owner()の$this->ownerがコード2で代入されると、コード1のクラスの変数$ownerも同時に代入されるのでしょうか?もしそうなら、関数内の変数の範囲は関数内に限定されるのではありませんか?そうでない場合、コード 2 の print $acart->owner は何を意味しますか?
-----解決策---------------------------- ----
まず、クラス、クラスのインスタンス化、継承などの概念をググってみましょう。
------解決策---------
$this->owner in set_owner メソッド = $ name; クラス属性の所有者に値を割り当てることです
はい、関数内の変数のスコープは関数に限定されます。しかし、ここではスコープ $this と呼ばれていませんか?
これにより、同じ関数がクラス内のメソッドとして変換されます。
------解決策---------
このように理解できます