1> if( "false" ) は空でない文字列が true であるため、 if( true) と同等です
2> データ型を確認します:
is_object(); >is_string ();
is_integer();
3> PHP では、メソッドのパラメーターの型を制約するために使用されます。データ型、ただしクラス): 制約する必要があるメソッド パラメーターの前にクラス名を置きます。
例: function write( ShopProduct $shopProduct){}
4> 演算子:左のオペランドのオブジェクトが右のオペランドです。 示されている型、結果は true
例: if( $shopProduct instanceof BookProduct ) {}
5> Inherit class Son extendsparent{}
コンストラクターなどの親クラスのメソッドを呼び出すには、
6> 静的メソッドとプロパティ
class StaticExample{
static public $a; を使用します。 >static public function hello(){}
}
外部アクセスは次を使用します::
例: print StaticExample::$a;
内部アクセスは self::
例: self ::$a;
7> 抽象クラス、抽象メソッド
抽象クラス xxx{
...
抽象関数 write(); //いいえ {}
}
抽象クラスのサブクラスはメソッドと実装を再宣言する必要があります。新しく実装されたメソッドのアクセス制御は、
8> が定義するインターフェイス インターフェイスよりも厳密にすることはできません。インターフェイスには属性とメソッドの宣言を含めることができます。ただし、メソッド本体は空です。例:interface a{
public function b();
Any class;インターフェイスを実装するクラスは、インターフェイス内で定義されたすべてのメソッドを実装する必要があります。それ以外の場合は、抽象クラスでなければなりません。
クラスは、インターフェイスを実装するために宣言内でimplementsを使用します。 ){
...
}
}
9> 例外
PHP5 は例外クラス
10> を導入します インターセプター
__get; ); 未定義のプロパティにアクセスするときに呼び出されます
__set($property ,$value); 未定義のプロパティに値を割り当てるときに呼び出されます
__isset($property); 未定義のプロパティに isset() を使用するときに呼び出されます。 🎜>__unset($property); 未定義のプロパティに対して呼び出されます unset() が呼び出されたときに呼び出されます;
__call($method, $arg_array); 例: __get() の実装
コードをコピーします
コードは次のとおりです:
function __get($property){
$method=" get{$property}";
if(method_exists($this ,$method)){
return $this->$method();
} } function getName(){ return "ボブ";}
function __isset($property){$method="get{$porterty}";
return(method_exists($this, $method) ));
}
関数 __set( $property, $value){
$method="set{$property}"; ){
return $this->$method($value ; 🎜>class CopyMe();
$first= new CopyMe();
$second=$first;
// PHP4 : $first と $sec は 2 つの完全に異なるオブジェクトです;
// PHP5: $first と $second は同じオブジェクトを指します
PHP5 では、オブジェクトの割り当てと転送は参照です
$next= clone $first; //$first と $second は 2 つの完全に異なるオブジェクトです (by_value copy)
コピーを制御したい場合は、特別なメソッド __clone() を実装する必要があります。
13> 自動ロード: __autoload()
PHP5 では、クラス ファイルを自動的にインクルードする __autoload() インターセプター メソッドが導入され、不明なクラスをインスタンス化しようとする操作が発生すると、 __autoload() メソッドを使用し、クラス名を文字列パラメーターとして渡します。
非常に単純な自動配置および包含戦略の例:
function __autoload( $classname){
include_once "$classname.php ";
}
class_exist() //クラスが存在するかどうかを確認します。 get_declared_classes(); //現在のスクリプトプロセスで定義されているすべてのクラスを取得します(配列形式で返されます) get_class_methods();//クラス内のすべてのパブリックメソッドのリスト(配列) method_exist($ objname,$method); // オブジェクトまたはクラスのメソッドが存在するかどうか
is_callable() ;// オブジェクトまたはクラスのメソッドは存在するだけでなく、アクセス可能ですget_class_vars() // 属性
get_parent_class (クラスまたはオブジェクト名); // 親クラス
is_subclass_of(); // 子クラスであるかどうかに関係なく、インターフェイスは instanceof 演算子を使用します
16 > リフレクション API
は、プロパティ、メソッド、クラス、パラメーターを分析できる一連の組み込みクラスで構成され、動的に情報を取得し、動的にメソッドを呼び出すことができます。