ホームページ > バックエンド開発 > PHPチュートリアル > PHPにおける@propertyの役割は何ですか?

PHPにおける@propertyの役割は何ですか?

WBOY
リリース: 2016-06-23 14:38:47
オリジナル
6420 人が閲覧しました

@property で属性を宣言すると、次のコードのようにクラスでも属性を使用できることがわかりました。 adminName1 と adminName2 の違いは何ですか?通常、プロパティを宣言するには @property を使用しますか?

/**
* @property string adminName1
 */

クラス test {

private $adminName2;

public function getName($pram1,$pram2) {
$this->adminName1 = $pram1;
$this->adminName2 = $pram2;
}
}

?>


ディスカッション (解決策) に返信

コメントにありませんでしたか?

@property string adminName1
は、プロパティ adminName1 が文字列であることを意味します

これは、プログラムの説明テキストを理解するのに役立つだけです

コメントで見て、他の場所で呼び出されたときに情報を求めるために使用できることを知りました!なぜクラス内で使用できるのかわかりません。

あなたはそのルールに従うだけです。このコードはどこから来たのでしょうか?

yiiフレームワークで見ました。しかし、私は自分でテストを書いたので、次のように動作します。

/**
* @property string adminName1
 */

class test {

private $adminName2

public function setName($pram1,$) pram2 ) {
$this->adminName1 = $pram1;
$this->adminName2 = $pram2; }

public function getName() {
return $result = $this->adminName1." "。 $ this->adminName2
}
}
$test = new test();
echo $test->getName(); > ;
//出力結果: admin1 admin2

ということは、PHP にはこのルールがあるのだろうか?

プログラムの説明文を理解しやすくするためだと言われています
/**

* @property string adminName1

 */
のように変更すると、逆に説明の意味がなくなってしまいます。誤解を招くでしょう。明らかに、彼は adminName1 属性があると言いました。なぜ私はそれを見なかったのですか? adminName2 しか表示されません。別の adminName1 を定義する必要がありますか?

何を言っているのですか?

プログラムの説明文を理解しやすくするためだと言われています
/**

* @property string adminName1

 */

のように変更すると、逆に説明の意味がなくなってしまいます。誤解を招くでしょう。明らかに、彼は adminName1 属性があると言いました。なぜ私はそれを見なかったのですか? adminName2 しか表示されません。別の adminName1 を定義する必要がありますか?

兄弟、ご回答ありがとうございます。でも、私の言っている意味が理解できないと思います。

元の投稿者、私もこの質問に対する答えを探していますが、回答した人たちは元の投稿者の意味を本当に理解していませんでした。

Google で答えが見つかりませんでした。私の個人的な理解では、これは IDE 用です。
@property キーワードは、このタイプのコメントを検出すると、自動的にプロパティに追加されます。リスト (存在しない場合でも、この形式で存在しない属性を追加してみるを押すことができます)。

目的は、呼び出し元の開発者がより明確にできるように、いくつかのマジック属性を明示することです。もちろん、IDE サポートが必要です

まず第一に、この識別属性の後、属性はまだ未定義であり、これらの呼び出しは未定義です。属性は最終的に __set メソッドおよび __get メソッドと呼ばれます。一般的な使用方法は次のとおりです:

public function __get($name){	$getter='get'.$name;	if(method_exists($this,$getter))return $this->$getter();}
ログイン後にコピー

最後に、これらの未定義の属性のメソッドは、get/set 関数へのアクセスに変換されます。

元の投稿者、私もこの質問に対する答えを探していますが、回答した人たちは元の投稿者の意味を本当に理解していませんでした。

Google で答えが見つかりませんでした。私の個人的な理解では、これは IDE 用です。

@property キーワードは、このタイプのコメントを検出すると、自動的にプロパティに追加されます。リスト (存在しない場合でも、この形式で存在しない属性を追加してみるを押すことができます)。

目的は、呼び出し側の開発者がより明確にできるように、いくつかのマジック属性を明示することです。もちろん、それには IDE のサポートが必要です

そうですね、この種の属性には を割り当てる必要があると思います。使用前に値を指定すると、割り当てがない場合は警告が発行されます。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート