PHP面向对象学习笔记之一 基础概念_PHP
1> if( "false" ) 等效于 if( true), 因为非空字符串是true
2> 检查数据类型:
is_array();
is_object();
is_string();
is_null();
is_integer();
3> PHP5 引入类的类型提示(type hint),用来约束一个方法的参数类型(不是基本数据类型,而是类):将类名放在需要约束的方法参数之前.
例如: function write( ShopProduct $shopProduct){}
4> instanceof 操作符: 如果左边操作数的对象是右边操作数所示的类型,结果为true
例如: if( $shopProduct instanceof BookProduct ) {}
5> 继承 class son extends parent{}
要调用父类的方法, 比如构造函数,用 parent::__construct();
6> 静态方法和属性
class StaticExample{
static public $a;
static public function hello(){}
}
外部访问使用::
例如: print StaticExample::$a;
内部访问使用self::
例如: self::$a;
7> 抽象类, 抽象方法
abstract class xxx{
...
abstract function write(); //没有{}
}
抽象类的子类要重新声明方法并实现之. 新实现的方法的访问控制不能比抽象方法的访问控制更严格.
8>接口 interface
只定义功能,不包含实现. 接口中可以包含属性和方法声明,但方法体为空;
例如: interface a{
public function b();
}
任何实现接口的类都要实现接口中定义的所有方法,否则就必须是抽象类.
类在声明中使用implements来实现某个接口.
class Shop implements a{
public function b(){
...
}
}
9> 异常 exception
PHP5引入异常类
10>拦截器 interceptor
__get($property); 访问未定义的属性时被调用
__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 "Bob";}
function __isset($property){
$method="get{$porperty}";
return(method_exists($this, $method));
}
function __set($property, $value){
$method="set{$property}";
if( method_exists($this,$method)){
return $this->$method($value);
}
}
11> 析构方法 __destruct()
12> __clone(); 与clone关键字的区别
class CopyMe();
$first= new CopyMe();
$second=$first;
// PHP4 : $first和$second是两个完全不同的对象;
// PHP5: $first和$second指向同一个对象
PHP5中, 对象的赋值和传递都是引用.
如果要拷贝,就要用: $second= clone $first; //现在$first和$second是两个完全不同的对象,(by_value copy)
如果要想控制复制, 要通过实现一个特殊方法__clone()
13> 自动加载: __autoload()
PHP5引入__autoload()拦截器方法来自动包含类文件.当PHP遇到试图实例化一个未知类的操作时,会尝试调用__autoload()方法,并将类名当作字符串参数传递给它.
例如一个很简单的自动定位和包含策略:
function __autoload( $classname){
includ_once "$classname.php";
}
====================
14>使用字符串动态引用类
复制代码 代码如下:
$classname="Task";
require_once("tasks/{$classname}.php);
$myObj= new $classname();
$method="getTitle";
$myObj->$method(); //动态方法
15>类函数和对象函数
复制代码 代码如下:
class_exist(); //检查类是否存在
get_declared_classes(); //获得当前脚本进程中定义的所有类(array形式返回)
get_class_methods();//类中所有的public方法列表(array)
method_exist($objname,$method); //对象或类的方法是否存在
is_callable();//对象或类的方法不仅存在,且能访问
get_class_vars(); // 属性
get_parent_class(类或对象名称); //父类
is_subclass_of(); //是否子类,不管接口,接口用 instanceof操作符
16>反射API
由一系列可以分析属性、方法、类和参数的内置类构成,可以动态获取信息,动态调用方法.

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

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

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

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

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP オブジェクト指向カプセル化の詳細な解釈 カプセル化は、オブジェクト指向プログラミングの 3 つの主要な特徴の 1 つであり、データとデータに対する操作をクラスにカプセル化し、特定の実装の詳細を外部プログラムから隠し、外部インターフェイスを提供することを指します。 PHP では、カプセル化の概念は、アクセス修飾子 (public、protected、private) を使用してプロパティとメソッドのアクセス可能性を制御することによって実装されます。まず、アクセス修飾子の役割を見てみましょう。 public (public): パブリック プロパティとメソッドは次のことができます。

最新のプログラミング言語の急速な発展に伴い、Golang はますます多くの人々にとって選択される言語となっています。 Golang 言語の基本概念の 1 つとして、関数はプログラマに強力なツール サポートを提供します。この記事では、読者が Golang 関数をより深く理解し、使用できるように、Golang 関数の定義、パラメーター、戻り値、スコープ、その他の基本概念、およびいくつかの高度なアプリケーション シナリオとテクニックを詳細に説明します。 1. 関数の定義 関数とは、Golang における基本的な概念であり、繰り返し可能な段落です。

PHP オブジェクト指向のシンプル ファクトリ モデルを通じてオブジェクトのバージョン管理と管理を実装する方法 大規模で複雑な PHP プロジェクトを開発する場合、バージョン管理と管理は非常に重要です。適切な設計パターンを通じて、オブジェクトの作成と使用をより適切に管理および制御できるため、コードの保守性と拡張性が向上します。この記事では、PHP オブジェクト指向のシンプルなファクトリ パターンを使用してオブジェクトのバージョン管理と管理を実装する方法を紹介します。シンプル ファクトリ パターンは、ファクトリ クラスを通じて指定されたオブジェクトをインスタンス化するクラスを作成するための設計パターンです。

PHP の入門から上級 - 基本的な構文と概念を学びます はじめに: PHP (ハイパーテキスト プリプロセッサ) は、Web 開発で広く使用されている人気のあるサーバー側スクリプト言語です。この記事では、入門レベルから始めて、徐々に PHP の基本構文と概念を深く学び、参考のためのコード例を提供します。 1. PHP のインストールと構成 PHP の学習を始める前に、まずマシンに PHP をインストールする必要があります。公式サイト(https://w)からダウンロードできます。

Go 言語は高性能の同時プログラミング言語です。その基本概念には、基本型 (整数、浮動小数点数、ブール値、文字列、文字)、var キーワードによる変数の宣言と型推論のサポート、const キーワードの使用が含まれます。定数、標準の制御フロー ステートメントの提供、func キーワードによる関数の宣言、import ステートメントによるパッケージの導入。実際のケースではフィボナッチ数列の生成を示し、これらの概念の理解を深めます。

PHP のオブジェクト指向のシンプル ファクトリ モードを通じてオブジェクトのシームレスな切り替えと置換を実現する方法 はじめに: PHP 開発では、オブジェクト指向プログラミング (OOP と呼ばれるオブジェクト指向プログラミング) が非常に一般的なプログラミング パラダイムです。オブジェクト指向設計パターンにより、コードの保守性と拡張性がさらに向上します。この記事では、オブジェクトのシームレスな切り替えと置換を実現するための、PHP の単純なファクトリ パターンに焦点を当てます。シンプルファクトリーパターンとは何ですか?シンプルなファクトリーパターン(シンプル)

PHP オブジェクト指向のシンプル ファクトリ パターンを使用して柔軟なオブジェクト インスタンスを作成する方法 シンプル ファクトリ パターンは、オブジェクト作成ロジックを公開せずにオブジェクト インスタンスを作成する一般的な設計パターンです。このモードは、コードの柔軟性と保守性を向上させることができ、入力条件に基づいてさまざまなオブジェクトを動的に作成する必要があるシナリオに特に適しています。 PHP では、オブジェクト指向プログラミングの特性を利用して、単純なファクトリ パターンを実装できます。以下の例を見てみましょう。次のようなグラフ計算機を作成する必要があるとします。

インターネットの発展に伴い、PHP は徐々に Web 開発で最も人気のあるプログラミング言語の 1 つになりました。しかし、PHP の急速な発展に伴い、オブジェクト指向プログラミングは PHP 開発に必要なスキルの 1 つになりました。この記事では、PHP 開発におけるオブジェクト指向プログラミングのスキルを習得する方法について説明します。オブジェクト指向プログラミングの概念を理解する オブジェクト指向プログラミングは、オブジェクト (クラス、プロパティ、メソッド) を使用してコードとデータを編成するプログラミング パラダイムです。オブジェクト指向プログラミングでは、コードが再利用可能なモジュールに編成されるため、プログラムのパフォーマンスが向上します。
