ホームページ バックエンド開発 PHPチュートリアル PHP_PHP チュートリアルのクラスに関する個人的な意見

PHP_PHP チュートリアルのクラスに関する個人的な意見

Jul 13, 2016 pm 05:33 PM
class php 個人的 について ビュー 親切 欲しい

前回の記事を理解するには、まずこの記事を読んでください...

クラス探索~~ クラスの機能と実装を大まかに理解するのに半年かかりました。主な理由は、私が理解できる記事がないことです(私はこれまでOOのものに触れたことはありません)。
私から見ると、PHPのClassに関しては、それを表現する言語が非公式で、それが正しいかどうかは分かりません。

クラスの作成はとても簡単です:

class my_class {}
ログイン後にコピー


クラスとは具体的に何をするものでしょうか?多くの人はそれをブラックボックスだと言いますが、私はここではそれを独立した全体と呼んでいます。クラス名だけはわかりますが、その中身はわかりません。では、このクラスをどのように使用するのでしょうか?
まず第一に、その中に定義されたパブリック変数があるかどうかを知る必要があります - 専門用語では「プロパティ」と呼ばれます。
2 番目: その中でどのような関数が定義されているかを知る必要があります。それは専門用語で「メソッド」と呼ばれます。
専門用語に混乱したので無視しました。

クラス内でパブリック変数を定義する方法とそれが何をするのか?

非常に簡単です、my_class クラスを拡張してみましょう:

class my_class
{
    var $username;
}
ログイン後にコピー


上記を見ると、非常に簡単です。var + スペース + 通常の変数名で構成されています。何に使われますか?関数について考えてみましょう。関数の外の変数にアクセスしたい場合、まずそれをグローバルにする必要がありますか?この効果についても同様で、このクラス内のすべての関数がこの変数にアクセスできるようになります。また、関数と異なる点の 1 つは、クラスの外部もいつでもこの変数にアクセスして制御できることです。外部へのアクセス方法については後ほど。もう 1 つの違いがあります。複雑なステートメントを使用してこの変数に値を割り当てることはできません (クラスを理解した後でルールを確認してください)。

デフォルト値を与えます:

class my_class
{
    var $username = "深空";
}
ログイン後にコピー


OK、パブリック変数が定義され、次に関数(「メソッド」とも呼ばれます)を定義します:

class my_class
{
    var $username = "深空";

    function show_username()
    {
    }
}
ログイン後にコピー


この定義された関数は通常の定義と同じです機能的な形式に違いはありません。シンプルにして、$username を出力する関数を定義してください:

class my_class
{
    var $username = "深空";

    function show_username($username)
    {
        echo $username;
    }
}
ログイン後にコピー


この時点で混乱している人もいるかもしれません (笑)、最も重要なことはここです、はっきりと見てください。 $username は 3 つになりました。どっちがどっちだよ〜〜

関数の仮引数は説明不要ですよね?この関数の機能は、仮パラメータで受け取った値を出力することです。つまり、次の場合:

show_username("猪头深空");
ログイン後にコピー


その後、「Pig Head Deep Space」を出力します、それはとても簡単です。

この機能にアクセスするにはどうすればよいですか?上で述べたように、これは直接の show_username("Pig Head Deep Space"); ではありません。心配しないでください。さまざまなクラスがあります。以下の通り:

$Name = new my_class();
ログイン後にコピー


これは上記の my_class クラスを初期化し、このオブジェクトを変数 $Name に割り当てます。このように理解できます。この変数はクラス全体を表します。

クラスで関数を使用する:

$Name->show_username("猪头深空");
ログイン後にコピー


混乱しています、なぜそんなに複雑ですか?矢が欲しいですか?実際、それはとても鮮やかです。クラスは変数 $Name にすでに与えられていますよね?つまり、$Name はクラスを表し、矢印はクラス内の show_username 関数を指します。それはとても単純です。つまり、この関数はこのクラスにあり、他の関数にはありません。違いを示していると理解できます (笑)。

「Pig Head Deep Sky」という 4 つの単語を印刷してみてください。なぜそんなに複雑だと思いますか?関数も使えるんじゃないでしょうか?私は、「もちろん、そんな単純なことではメリットがわかりません。拡張を続けましょう」と言いました。

もう 1 つの質問は、今述べた「パブリック変数」がなぜ役に立たないのかということです。この関数がこのパブリック変数 var $username のデフォルト値を自動的に受け取らないのはなぜですか?つまり、

$Name->show_username($username);
ログイン後にコピー


を使用すると、結果はどうなるでしょうか? 答えは、出力がありません。仮パラメータ $username に値を与えていないためです。

では、このパブリック変数はどうやって使うのでしょうか?このクラスを変更してみましょう:

class my_class
{
    var $username = "深空";

    function show_username()
    {
        echo $this->username;
    }
}
ログイン後にコピー


おお、今回は仮パラメータがありませんね。 $this-> も余分にあるので、めまいがします(笑)。実際、これは授業の最大の利便性の 1 つでもあります。
$thisの役割:クラス内のパブリック変数や関数にアクセスします。
訪問?それほどプロフェッショナルですか?実際、var $username の代わりに $this->username が使用されます。 $this は、それがパブリックであり、アクセス可能であり、関数の外部のもの (他の変数や関数など) であることを示すために使用されます。

試してみましょう:

$Name->show_username();
ログイン後にコピー
ログイン後にコピー


見てください、最終的に「深宇宙」という2つの単語が印刷されました、わはは。

「深宇宙」という文字を印刷したくないのですが、「豚の頭の深宇宙」と印刷したいのですが、どうすればよいですか?それは非常に簡単で、このパブリック変数を再割り当てします。私はあなたに感銘を受けました。

$Name->username = "猪头深空";
ログイン後にコピー
ログイン後にコピー


この意味分かりますか? $Name->username は、クラス内のこのパブリック変数を表します。等号の割り当てについては説明する必要はありません。

もう一度印刷しましょう:

$Name->show_username();
ログイン後にコピー
ログイン後にコピー


  哈哈,终于打印“猪头深空”了。不错吧,很方便吧,不用形参也能任意修改打印值哦~~。

  不过单单打印一个名称也太没意思了,我们说点欢迎的话吧,来扩充一下这个类,创建一个名叫 Welcome 的函数:

class my_class
{
    var $username = "深空";

    function show_username()
    {
        echo $this->username;
    }

    function Welcome()
    {
    }
}
ログイン後にコピー


  恩,实现什么功能好呢?简单点吧,就实现在名字前面有 “欢迎” 两个字好了

class my_class
{
    var $username = "深空";

    function show_username()
    {
        echo $this->username;
    }

    function Welcome()
    {
        echo "欢迎";
        $this->show_username();
    }
}
ログイン後にコピー


  第二次看到 $this 了吧?和上次有点不同,$this->show_username(); 干什么用呢?指向类中的一个函数,其实它就是调用 show_username 这个函数,用 $this 来表示这个函数在类中并且和 Welcome 函数平行,而不是在其他地方(比如Welcome函数中)。

  Welcome 函数实现的功能很简单,首先打印两个字"欢迎",然后接下去执行 show_username 函数,打印名字。

  来试试这个函数吧:

$Name->Welcome();
ログイン後にコピー
ログイン後にコピー


  看到了吧,打印出“欢迎深空”这四个字了。

  可是我要打印“欢迎猪头深空”,怎么办?我服了你了,我们给公共变量 var $username 一个值吧:

$Name->username = "猪头深空";
ログイン後にコピー
ログイン後にコピー


  接下去打印欢迎语:

$Name->Welcome();
ログイン後にコピー
ログイン後にコピー


  嘿嘿,终于打印“欢迎猪头深空”了。

  怎么样?明白了类的用法了么?好处在于能够调用类中的任意函数,只要用 $this 指出来,可以改变一个公共变量的值,可以在类中的函数中使用这个公共变量。………多了去了,它的应用等待你去发现了。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/508512.htmlTechArticle要看懂前一篇,先把這篇看看先...... 对类的摸索~~俺用了半年时间才大概理解类的作用和实现。主要是没有一篇能让我理解的文章(之前...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles