ホームページで更新された Class に関する記事をざっと見ました (PHPE の記事 http://www.phpe.net/articles/389.shtml を参照)。とても良い内容なので、読むことをお勧めします。
クラス探索~~ クラスの機能と実装を大まかに理解するのに半年かかりました。主な理由は、私が理解できる記事がないことです(私はこれまでOOのものに触れたことはありません)。
私の観点からすると、PHP のクラスに関しては、それを表現するために使用される言語は非公式であり、それが正しいかどうかはわかりません。
クラスの作成は簡単です。
PHP コード:------------------------------------------ --- ----------------------------------
class my_class {}
------ -------------------------------------------------- -- ------------------------
授業って具体的に何をするの?多くの人というものはブラックボックスであり、ここではそれを独立した全体と呼んでいます。クラス名だけはわかりますが、その中身はわかりません。では、このクラスをどのように使用するのでしょうか?
まず第一に、その中に定義されたパブリック変数 (専門用語では「プロパティ」と呼ばれます) があるかどうかを知る必要があります。
2 番目: その中でどのような関数が定義されているかを知る必要があります。それは専門用語で「メソッド」と呼ばれます。
専門用語ばかりで混乱したので、無視しました。
クラス内でパブリック変数を定義する方法とその機能?
とても簡単です。my_class クラスを拡張しましょう
PHP コード:--------------------------------- --------------------------------------
クラス my_class
{
var $username;
}
----------------------------------------------------- ---------------------------------------
上記を見るととても簡単です. パブリック変数は var+space+通常の変数名だけで構成されています。何に使われますか?関数について考えてみましょう。関数の外の変数にアクセスしたい場合、まずそれをグローバルにする必要がありますか?この効果についても同様で、このクラス内のすべての関数がアクセスできるようにする必要があります。関数と異なる点の 1 つは、この変数にはクラスの外部からもアクセスできることです。アクセス方法については後ほど説明します。後で外側から。もう 1 つの違いがあります。複雑なステートメントを使用してこの変数に値を割り当てることはできません (クラスを理解した後でルールを確認してください)。デフォルト値を与えます
PHP コード:------------------------------------------ -------- --------------------------------------
クラスmy_class
{
var $username = "深宇宙";
}
--------------------------------- -------- --------------------------------------
OK 、パブリック変数が定義され、次に関数 (「メソッド」とも呼ばれます) を定義します。
PHP コード:------------------------------------------ --- ----------------------------------
class my_class
{
var $username = "深宇宙";
関数 show_username()
{
}
}
--------------------------------- -------------------------------------------------------- --------------
この定義関数は通常の定義関数と形式に違いはありません。シンプルにして、$username:
PHP code:-------------------------------- を出力する関数を定義します。 -------------------------------------------------- -
class my_class
{
var $username = "深宇宙";
function show_username($username)
{
echo $username;
}
}
------------- --- --------------------------------------------------- --- -------------
この時点で混乱している人もいるかもしれませんが、はは、最も重要なことはここです、はっきりと見てください。 $username は 3 つになりました。どっちがどっちだよ〜〜
関数の行パラメータについては説明する必要はありませんね。この関数の機能は、line パラメータで受け取った値を出力することです。つまり、次の場合です。
PHP コード:-------------------------- -------- -------------------------------------- -------- -
show_username("豚頭ディープスカイ");
---------------------------- ------------ -------------------------------------- ----
すると、「Pig Head Deep Space」と印刷されます。とても簡単です。
この機能にアクセスするにはどうすればよいですか?上で述べたように、これは直接の show_username("Pig Head Deep Space"); ではありません。心配しないでください。さまざまなタイプがあります。以下の通り:
PHP コード:------------------------------------------ --- --------------------------------------
$Name = new my_class( );
-------------------------------------------- ------ ----------------------------
これにより、上記の my_class クラスが初期化され、このオブジェクトが変数に割り当てられます$Name 、このように理解できます。この変数はクラス全体を表します、笑。
クラスで関数を使用する:
PHP コード:-------------------------------------- -- ------------------------------------------
$名前-> show_username( "Pig's Head Deep Sky");
-------------------------------------- -- --------------------------------------
混乱しているのですが、なぜそんなに複雑なのでしょうか?矢が欲しいですか?実際にはとても鮮やかです。すでに変数 $Name にクラスを与えていますよね?つまり、$Name はクラスを表し、矢印はクラス内の show_username 関数を指します。それはとても単純です。つまり、この関数はこのクラスにあり、他の関数にはありません。違いを示していると理解できます (笑)。
「Pig Head Deep Sky」という 4 つの単語を印刷してみてください。なぜそんなに複雑だと思いますか?関数も使えるんじゃないでしょうか?私は、「もちろん、そんな単純なことではメリットがわかりません。拡張を続けましょう」と言いました。
別の質問: 先ほど述べた「パブリック変数」はなぜ役に立たないのですか?この関数がこのパブリック変数 var $username のデフォルト値を自動的に受け取らないのはなぜですか?それは次のように使用した場合です:
PHP コード:-------------------------------------- ------ --------------------------------------
$Name- >show_username($ ユーザー名);
----------------------------------------------------- -------- ----------------------------------
結果はどうなるでしょうか?答えは出力がないことです。仮パラメータ $username に値を与えていないためです。
それでは、このパブリック変数をどのように使用するのでしょうか?このクラスを変更しましょう:
PHP コード:------------------------------------------ - ----------------------------------------
class my_class
{
var $ username = "深宇宙";
function show_username()
{
echo $this->username;
}
}
-------- ---------------------------------------------------- ------- ----------
おお、今回は顔パラメータがないんですね。 $this-> も余分にあるので、めまいがします(笑)。実際、これは授業の最大の利便性の 1 つでもあります。
$this の役割: クラス内のパブリック変数または関数にアクセスします。
訪問しますか?それほどプロフェッショナルですか?実際、$this->username は、var $username の代わりに使用され、パブリックであることを示します。アクセス可能、機能外のもの。
試してみる:
PHP コード:-------------------------------------- ----------------------------------------------------
$Name->show_username();
-------------------------------------- --------- --------------------------------
ほら、「深宇宙」という言葉』がついに印刷されました。わはは。
「深宇宙」という言葉を印刷したくないのですが、「豚の頭の深宇宙」と印刷したいのですが、どうすればよいですか?それは非常に簡単で、このパブリック変数を再割り当てします。私はあなたに感銘を受けました。
PHP コード:------------------------------------------ --- ----------------------------------
$Name->username = "Pig Head Deep Sky ";
---------------------------------------------- ------------------------------------
この意味分かりますか? $Name->username は、クラス内のこのパブリック変数を表します。等号の割り当てについては説明する必要はありません。
もう一度印刷してみましょう
PHPコード:-------------------------------------- -- ------------------------------------------
$名前-> show_username( );
------------------------------------------ ----- ----------------------------------
はは、やっと印刷できた「ピッグヘッド・ディープ・スペース」 」。悪くない、仮パラメータなしで出力された値を任意に変更できるのは非常に便利です~~。
しかし、名前を出力するだけでは退屈すぎるので、このクラスを拡張して Welcome という関数を作成しましょう:
PHP コード:------------ ------ -------------------------------------------- ------ ------------
class my_class
{
var $username = "深宇宙";
function show_username()
{
echo $this->username
}
function ようこそ()
{
}
}
----------------------------- ------ ----------------------------------------
さて、どんな機能ですか?実装するのが最善ですか?簡単にするには、名前の前に「ようこそ」という単語を入れます
PHP コード:---------------------------- ---------------------------------------------------- ---- ---
class my_class
{
var $username = "深宇宙";
function show_username()
{
echo $this->username;
}
function Welcome()
{
echo "ようこそ" ;
$this->show_username();
}
}
---------------------------- ---------------------------------------------------- ----
いいえ、$this をご覧になるのは 2 回目ですか? $this->show_username(); 何に使用されますか?実際、これは show_username 関数を呼び出すだけで、 $this を使用して、この関数が他の場所 (Welcome 関数など) ではなくクラス内にあり、Welcome 関数と並行していることを示します。
Welcome 関数によって実装される関数は非常に単純で、まず「ようこそ」という 2 つの単語を出力し、次に show_username 関数を実行して名前を出力します。
この機能を試してみましょう:
PHP コード:---------------------------------------------- - ----------------------------------
$Name->ようこそ();
--- -------------------------------------------------- -- ------------------------
見てください、「深宇宙へようこそ」という文字が印刷されています。
でも「ピッグヘッド深宇宙へようこそ」を印刷したいのですが、どうすればよいでしょうか?私は確信しているので、パブリック変数 var $username に値を与えてみましょう:
PHP コード: ---------------------------- - ------------------------------------------------- - -
$名前->ユーザー名 = "ピッグヘッドディープスカイ";
-------------------------------- --------------------------------------
次に、ウェルカム メッセージを印刷します:
PHP コード:-------------------------------------------- - --------------------------------------
$Name->ようこそ() ;
------------------------------------------------- ----------------------------------
やあ、やっと「ピッグヘッド深宇宙へようこそ」が印刷できました。
どうですか?クラスの使い方を理解していますか?利点は、$this で指定する限り、クラス内の任意の関数を呼び出すことができることです。このパブリック変数をクラス内の関数で使用できます。 ......非常に多くのアプリケーションがあり、あなたが発見するのを待っています。