ホームページ >バックエンド開発 >PHPチュートリアル >PHP クラスの関数と変数のスコープに関連する問題

PHP クラスの関数と変数のスコープに関連する問題

WBOY
WBOYオリジナル
2016-06-13 13:17:07861ブラウズ

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 と呼ばれていませんか?

これにより、同じ関数がクラス内のメソッドとして変換されます。
------解決策---------
このように理解できます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。