日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

深入php面向对象和模式

發布時間:2025/3/15 php 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入php面向对象和模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前兩章是php歷史和概論,略過。

第三章 對象基礎

3.1 類和對象

類,是用于生成對象的代碼模版。

public 公有的,都可調用。protected 保護的, 只有本類和子類可以調用。private 私有的, 只有本類可以調用,子類也不能。

?

使用->來調用類的屬性和方法: $product->title

?

構造方法:__construct() 會被自動調用。

?

繼承: extends子類繼承父類會在實例化的時候自動調用所有public 和 protected方法。
要引用一個類而不是對象的方法,可以使用::而不是->, 所以 parent::__construct()

?

靜態方法: static 以類作為作用域的函數。 class StaticExample {static public $num=0;static public function sayHello() {print "hello";} }print StaticExample::$num; StaticExample::sayHello();要從當前類(不是子類)中訪問靜態方法或屬性,可以使用self關鍵字 self::$num;根據定義, 我們不能在對象中調用靜態方法, 因此靜態方法和屬性又被稱為類變量和屬性。因此不能在靜態方法中使用偽變量$this

?

常量屬性: const 一般只能用大寫字母來命名常量 const AVAILABLE = 0;像靜態屬性一樣, 只能通過類而不能通過類的實例訪問常量屬性。

?

抽象類: abstract 抽象類不能直接被實例化,抽象類中只定義(或部分定義)子類需要的方法。子類可以繼承它并且通過實現其中的抽象方法,使抽象類具體化。 abstract public function write(); 抽象類的每個子類都必須實現抽象類中的所有抽象方法。

?

接口: interface 接口職能定義功能,而不包含實現的內容。 interface Chargeable {public function getPrice(); } 任何實現接口的類都要實現接口中所定義的所有方法。

?

拋出異常: 使用throw 和 Exception對象來拋出異常,這會停止執行當前方法。 if($i=0){throw new Exception('this is a error message'); }或 try{ ... } catch (Exception $e) { ... }

?

析構方法: 在對象被垃圾收集器收集前(即對象從內存中刪除之前)自動調用。 __destruct()

?

__clone()復制對象class CopyMe {} $first = new CopyMe(); $second = $first; //php4: $second和$first是兩個完全不同的對象。 //php5: $second和$first指向同一個對象。 php中對象的賦值和傳遞都是通過引用進行的。

回調?

一個簡單的回調案例

function f1($arg1, $arg2){echo __FUNCTION__.'exec, the args is:'.$arg1.' '.$arg2;echo "<br>";}call_user_func('f1', 'han', 'wen');call_user_func_array('f1', array('f1', array('han', 'wen')));

目前在我看來回調函數就是通過函數call_user_func和call_user_func_array來指定函數名和參數來調用函數,具體用途還不太清楚。

匿名函數和閉包Closure

$func = function() {}; //帶結束符

  

$func = function( $param ) {echo $param; };$func( 'some string' );//輸出: //some string

?這篇文章不錯http://www.cnblogs.com/melonblog/archive/2013/05/01/3052611.html

?順便發現一個強大函數preg_replace_callback  

?對象與設計

內聚: 是一個模塊內部各成分之間相關聯程度的度量。

耦合:緊密相連,依賴太重

轉載于:https://www.cnblogs.com/derrck/p/4439027.html

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的深入php面向对象和模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。