認真學習php物件導向 2

2021-08-04 23:41:09 字數 2901 閱讀 6793

準備寫乙個認真學習php物件導向的系列,使用php來做網頁,沒有深入了解php的話,可能三板斧就夠了,並不需要有多高深!如有錯誤,歡迎各位不吝賜教!進度安排的話,我學到**,就更新到**了!形式的話就採用乙個需求小案例,然後實現,並附上自己的總結,文章原始碼

系統:ubuntu16.04

編輯器:phpstorm2017

解決 : __callstatic的使用以及構造呼叫函式

__callstatic在呼叫乙個類不存在的靜態函式的時候會觸發這個函式的執行,我們可以使用這個對輸入乙個不存在的引數的時候進行友好報錯處理。

自動化呼叫,引數不多的時候,我們可以在類中指定函式名,但是當函式過多的時候,這種呼叫明顯很費力,我們可以採取建構函式名的方法,對函式進行呼叫

實現 :

自動化呼叫

god.hp

require ("god_calss.php");

$result='';

if ($argc>=2) else

// '-v'==$argv[1] && $result =god_calss::version();

// '-init'==$argv[1] && god_calss::init();

// '-make'==$argv[1] && god_calss::make();

}echo $result;

echo php_eol;

容錯處理god_class.hp

static function __callstatic($name, $arguments)

效果 :

解決 : stdclass

stdclass 在php核心進行模組初始化操作時會自動載入這個函式,它的所有的魔術方法,父類、介面等在初始化時都被設定成null。由於在php中對於乙個類我們無法動態的新增方法, 所以這個類只能用來處理動態屬性

實現 :

改造init

god_class.hp

static function init()
####god_func.hp//返回乙個儲存使用者輸入的物件

function tc($p) 

return $get_class;

}

god.hp一定要再class檔案前面

require (「god_func.php」);

require (「god_calss.php」);

效果 :

解決 : mkdir和file_get_contents和json_decode

具體用法可以查下官網手冊

1. 前面我們接受使用者輸入,並將其存入json檔案當中,現在要做的是從json檔案讀取資料,返回物件,建立使用者輸入對應的資料夾

實現 :

改造init

god_class.hp

static function start()
####god_func.hp

function loadconfig()
效果 :

解決 : __autoload和命名空間namespace的使用

將上述建立檔案自定義了乙個類,為了更有規劃的搭建整個專案的框架,專案檔案目錄變成這樣子,core代表專案的核心檔案目錄,frame就是我們所引用的外部類庫檔案目錄,template就是模板檔案目錄

實現 :

改造init

god_class.hp

在類名外面寫入如下**

use core\frame\god_frame;

function __autoload($classname)

方法呼叫:

static function start()
####god_frame.hp

namespace core\frame;

class god_frame

function run()

}

效果 :

認真學習php物件導向 3

準備寫乙個認真學習php物件導向的系列,使用php來做網頁,沒有深入了解php的話,可能三板斧就夠了,並不需要有多高深!如有錯誤,歡迎各位不吝賜教!進度安排的話,我學到 就更新到 了!形式的話就採用乙個需求小案例,然後實現,並附上自己的總結,文章原始碼 系統 ubuntu16.04 編輯器 phps...

認真學習php物件導向 5

準備寫乙個認真學習php物件導向的系列,使用php來做網頁,沒有深入了解php的話,可能三板斧就夠了,並不需要有多高深!如有錯誤,歡迎各位不吝賜教!進度安排的話,我學到 就更新到 了!形式的話就採用乙個需求小案例,然後實現,並附上自己的總結,文章原始碼 在上一節中我們已經模擬生成了路由資源檔案,這一...

Jenkins SHELL 學習,認真學習

1.參考文字 2.參考指令碼 資料夾不存在則建立?if?d?data then mkdir?data else echo?資料夾已經存在 fi?檔案存在則刪除?if?f?data filename then echo?檔案不存在 else rm?f?data filename fi?判斷資料夾是否存...