PHP上級プログラミング学習ノート2014.06.09
この記事では、抽象クラス、インターフェイス、および契約的プログラミングと呼ばれる手法を紹介します。これらの OPP メカニズムを使用すると、作成するコードはコンテンツの計算や出力に限定されません。これらのメカニズムは、クラス間の対話のルールを概念的レベルで定義でき、アプリケーションの拡張とカスタマイズの基礎も提供します。
1. 抽象クラス
抽象クラスのメカニズムでは、特定の詳細は継承者に任せて、共通の基本クラスを常に定義する必要があります。概念を抽象化することで、開発プロジェクトで拡張性の高いアーキテクチャを作成できます。 どのクラスでも、その中の少なくとも 1 つのメソッドが抽象として宣言されている場合、このクラスも抽象として宣言する必要があります。抽象として定義されたメソッドは、その呼び出しメソッド (パラメーター) を宣言するだけであり、その特定の関数の実装を定義することはできません。クラス宣言で abstract 修飾子を使用すると、クラスを抽象として宣言できます。
1.1 メソッドのプロトタイプ
は、メソッドの定義からメソッド本体を削除した後のシグネチャを指します。これには、アクセス レベル、関数キーワード、関数名、パラメーターが含まれます。 ({}) や括弧内のコードは含まれません。たとえば、次のコードはメソッドのプロトタイプです:
リーリー抽象クラスを継承する場合、サブクラスは親クラスのすべての抽象メソッドを定義する必要があります。さらに、これらのメソッドの アクセス制御 は親クラスのものと同じ (またはより緩和された) 必要があります。
1.2 抽象クラスについて
1.3 抽象クラスの使用
リーリー
2. オブジェクトインターフェイス
インターフェースを使用すると、クラスが実装する必要があるメソッドを指定できますが、これらのメソッドの特定の内容を定義する必要はありません。
インターフェースは、標準クラスの定義と同様に、interface キーワードを通じて定義されますが、その中で定義されているメソッドはすべて空です。
インターフェースで定義されるすべてのメソッドはパブリックである必要があります。これはインターフェースの特性です。
インターフェイスは、クラスを実装するために宣言する必要があるメソッドを宣言するために使用できるクラスに似た構造です。たとえば、インターフェイスは、API の実装方法を定義せずに API を宣言するためによく使用されます。
ほとんどの開発者は、コードおよび生成されたドキュメント内のクラスと区別するために、インターフェース名に大文字の I を接頭辞として付けることを選択します。
2.1 インターフェースを使用
extends キーワードを必要とする抽象クラスの統合とは異なり、インターフェイスの実装では、implements キーワードを使用します。クラスは複数のインターフェイスを実装できます。この場合、それらをカンマで区切る必要があります。クラスがインターフェイスを実装しているとマークされていても、そのインターフェイスのメソッドをすべて実装していない場合は、エラーがスローされます。
2.2 インターフェースを使用するケース
リーリー3.オペレーターのインスタンス
instanceof 演算子は、PHP5 の比較演算子です。左と右のパラメータを受け入れ、ブール値を返します。この演算子は、オブジェクトのインスタンスが特定の型であるか、型を継承しているか、またはクラスの特定のインターフェイスを実装しているかを判断するために使用されます。
リーリー4. 契約上のプログラミング
契約的プログラミングとは、クラスを作成する前に宣言されたインターフェイスを実装するプログラミング手法を指します。このメソッドは、クラスを確実にカプセル化するのに非常に役立ちます。コントラクト プログラミング手法を使用すると、建築家が建物を建てる前に青写真を描くのと同じように、アプリケーションを作成する前にビューの機能を定義できます。
5. 概要
抽象クラスはabstractキーワードを使用して宣言されたクラスです。クラスを抽象としてマークすると、宣言されたメソッドの実装を延期できます。メソッドを抽象として宣言するには、すべての中括弧を含むメソッド エンティティを削除し、メソッドが宣言されているコード行をセミコロンで終了します。
抽象クラスは直接インスタンス化できず、継承する必要があります。
クラスが抽象クラスから継承する場合、基本クラスで宣言されたすべての抽象メソッドを実装していない場合も、そのクラスを抽象として宣言する必要があります。
インターフェースでは、メソッド本体なしでメソッドのプロトタイプを宣言できます。これは抽象クラスに非常に似ています。それらの違いは、インターフェイスではメソッド本体を使用してメソッドを宣言できないことと、使用する構文も異なることです。クラスに検出ルールを強制するには、extends キーワードの代わりにimplements キーワードを使用する必要があります。
場合によっては、クラスが特定のクラスの型であるかどうか、または特定のインターフェイスを実装しているかどうかを判断する必要があります。このタスクには、instanceof が適しています。 instanceof は、インスタンスが特定の型であるかどうか、インスタンスが特定の型を継承しているかどうか、インスタンスまたはその祖先クラスがクラス固有のインターフェイスを実装しているかどうかという 3 つのことをチェックします。
一部の言語には複数のクラスから継承する機能があり、これは多重継承と呼ばれます。 PHP は多重継承をサポートしていません。このアイデアは、クラスに対して複数のインターフェイスを宣言する機能を提供するというものです。
インターフェイスは、クラスが従わなければならないルールを宣言するのに非常に役立ちます。契約に基づくプログラミング テクノロジは、この機能を使用してカプセル化を強化し、ワークフローを最適化します。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

メモ帳++7.3.1
使いやすく無料のコードエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
