ホームページ >バックエンド開発 >PHPチュートリアル >PHPオブジェクト指向$thisキーワード使い方詳細解説_PHPチュートリアル

PHPオブジェクト指向$thisキーワード使い方詳細解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:49:471056ブラウズ

この記事では、PHP クラスでよく使用される this キーワードを紹介します。次に、オブジェクト指向 PHP クラスでの $this キーワードの使用法を簡単に分析します。このチュートリアルがすべての人に役立つことを願っています。学生。

オブジェクトの外部のオブジェクト メンバーのプロパティとメソッドへのアクセスは、オブジェクトへの参照を使用して行われることは以前に知っていました。オブジェクト内で、メンバー メソッドが他のメンバー プロパティまたは独自のオブジェクト内のメンバー メソッドにアクセスするときは、特別なオブジェクト参照 "$this->value" を使用してアクセスする必要があります。$this 参照は、そのメンバーがどのオブジェクトに属しているかを表します。 . オブジェクトであり、オブジェクトのメンバー メソッド内でのみ使用できます。

PHP クラスとオブジェクトの変数と属性の名前の競合と不確実性の問題を解決するために、現在のオブジェクトを呼び出すために "$this" キーワードが導入されました。

クラス内の現在のオブジェクトのプロパティとメソッドを呼び出すときは、「$this->」キーワードを使用する必要があります。コンストラクター内の $this は、メソッド do で作成された新しいオブジェクトを参照します。オブジェクトに属しておらず、$this キーワード値も使用されません。 $this キーワードを使用すると、クラス内のオブジェクトのプロパティまたはメソッドを呼び出すことができます。

1. 変数を呼び出す

例:

コードは次のとおりです コードをコピー
クラスユーザー{
プライベート $n;
関数 __construct(){
$name="マイク";
echo $this->n=$name;
}
}
$p=新しいユーザー();
?>

2.呼び出し方法

例:

コードは次のとおりです コードをコピー

クラスカル{
パブリック関数 sum($a,$b){
$a+$b を返します;
}
パブリック関数 prt($a,$c){
$a*$c を返します;
}
パブリック関数の結果($a,$b,$c){
$a=$this->sum($a,$b);
$this->prt($a,$c);
を返す }
}
$c=新しいcal();
echo "(2+3)*10= " .$c->result('2','3','10');
?>


次の例を見てみましょう。$this は何をしているのでしょうか?

コードは次のとおりです コードをコピー
クラスの人{
//以下は人々のメンバー属性です
var $name //その人の名前
var $sex //人の性別
var $age //人の年齢
//属性名 $name、性別 $sex、年齢 $age に値を割り当てるコンストラクター パラメーターを定義します
function __construct($name="", $sex="", $age=""){
$this->name=$name
$this->セックス=$セックス
$this->年齢=$年齢
}
//この人の話し方は、彼自身の属性を伝えます
関数say() {
echo "私の名前: ".$this->name" 性別: ".$this->性別" 私の年齢: ".$this->age"
}
//オブジェクトのクローン作成時に自動的に呼び出されるメソッド。クローン作成後に元のオブジェクトの内容を変更したい場合は、__clone()で元のオブジェクトを書き換える必要があります
プロパティとメソッド
関数 __clone(){
//$this はコピー p2 を指し、$that は元の p1 を指します。したがって、このメソッドではコピーの属性が変更されます。
$this->name="私は偽の $that->name です"; $this->年齢=30; }
}
$p1=新しい人("張三", "男性", 20); $p2=$p1 をクローンします。 $p1->say(); $p2->say(); ?>


上記の例の出力:

実行結果
私の名前: Zhang San 性別: 男性 私の年齢: 20
私の名前:偽張三です 性別:男性 年齢:30歳

上記のコードで $this が何を行うかを見てみましょう:

1. $this->name などのオブジェクト内のメンバーにアクセスします

2. オブジェクトの他のメソッドにアクセスします。たとえば、say() メソッドの外側の $this->run() メソッドや $this->eat("apple") メソッドにアクセスします。

もう 1 つの注目すべき点は、ローカル変数とメンバー属性は同じ名前を持つことができますが、スコープとアクセス メソッドが異なることです。たとえば、eat() メソッド本体の $name はローカル変数と同等であり、そのスコープは次のとおりです。 Eat メソッド内に限定されており、 PERSON のメンバー属性宣言部分の $name はグローバル変数に相当し、他のメソッドでは $this->name の形式でアクセスできます。

コードは次のとおりです コードをコピー

クラス ユーザー名
{
//属性を定義する
プライベート $name
//コンストラクターを定義します
関数 __construct( $name )
{
$this->名前 = $name; //このポインタはここで使用されています
}
//デストラクター
関数 __destruct(){}
//ユーザー名のメンバー関数を出力します
関数 printName()
{
print( $this->name ); //PHP キーワードこのポインターが再度使用されます
}
}
// オブジェクトをインスタンス化します
$nameObject = 新しいユーザー名
( "ヘイエルレン" ); //印刷を実行
$nameObject->printName();
//出力: ヘイエルレン
// オブジェクトの 2 番目のインスタンス化
$nameObject2 = 新しいユーザー名( "PHP5" ); //印刷を実行
$nameObject2->printName(); //出力: PHP5
?>



http://www.bkjia.com/PHPjc/632686.html

www.bkjia.com

http://www.bkjia.com/PHPjc/632686.html技術記事この記事では、PHP クラスでよく使用される this キーワードを紹介します。次に、オブジェクト指向 PHP クラスでの $this キーワードの使用法を簡単に分析します。このチュートリアルがすべてのユーザーに役立つことを願っています。生徒たち…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。