沈逸老師PHP魔鬼特訓筆記(6) 巫術與骨架

2022-02-17 02:24:36 字數 2250 閱讀 1307

php最牛逼的特性之一除了懶人函式,還有一些魔法函式。

首先我們來認識下__tostring,通過乙個巫術方法,我們吧例項轉化過後的類,直接當字串輸出。結合我們前面所做的功能,我們在類裡面加上這個函式:

在godinit檔案中,我們將

<?php 

require('godconfig.php'); //

引入gonconfig這個檔案

class godinit //

建立乙個類,godinit

static

function __callstatic($p1,$p2

) }

?>

在god_func7檔案中寫入__tostring方法

<?php 

//functions for php7

function genconfig($cnt):string

function tc($p

) }

function

__tostring()};}

測試下結果,還是和原來一毛一樣:

師曰:我們又不是一定非要輸出json,如果我們要把類輸出成一段「sql」呢?譬如自動拼接成乙個sql字串 select prj_name,prj_author from table。這個問題我們先想想。

現在我們先學習下php常量。what?突然冒出乙個基礎語法..好吧前面都是在講基礎語法,只是逼格比較高而已...

定義常量:define(「name」,」value」);

1、在設定以後,常量的值無法更改

2、常量名不需要開頭的美元符號($);

3、作用域不影響對常量的訪問。

4、常量只能包含標量資料(boolean,integer,float 和 string)。

然後我們在剛才是例項中定義乙個常量,把這個常量當做配置來使用,來我們試試看:

首先在godinit這個檔案的第一行定義個常量:

define('cstring','json');
然後我們在在god_func7檔案中修改下__tostring方法:

<?php 

//functions for php7

function genconfig($cnt):string

function tc($p

) }

function __tostring()else }};

}

我們看下結果:

把原來的常量改成:define('cstring','sql');

下面,弄個實戰需求繼續學習。

前面花了n多的時間做了乙個配置檔案的生成(god.json)。我們再來個需求:讀取配置檔案 。

需求如下,當使用者輸入引數是「ini」的時候,我們就讀取,並把裡的引數內容列印到螢幕上。

//

在godinit檔案中我們新增乙個方法

function

ini()

然後在god_func7檔案中同樣也新增乙個loadconfig()方法

function

loadconfig()

結果:好吧,寫了這麼多god,最終要幹什麼?老師在這節課揭曉了答案,是為了我們後面做**時生成乙個「開發骨架」。

強化知識點:

__tostring

__get、

__call、

__set、

__clone

json_decode:

file_get_contents:

上一課:

沈逸老師php魔鬼特訓筆記(5)

下一課:沈逸老師php魔鬼特訓筆記(7)--我叫什麼名字

沈逸老師PHP魔鬼特訓筆記(2)

一 這一課會學習到幾個懶人函式 1 file put contents php 5,php 7 file put contents 將乙個字串寫入檔案 intfile put contents string filename,mixed data int flags 0 resource conte...

沈逸老師PHP魔鬼特訓筆記 7 我叫什麼名字

一 生成資料夾。bool mkdir string pathname int mode 0777 bool recursive false resource context 嘗試新建乙個由 pathname 指定的目錄。引數 pathname 目錄的路徑。static function start ...

問題 C 沈老師的最後一關

安傑好不容易搬完了彈藥,沒想到沈老師還不打算放過他。除非,他能回答沈老師乙個問題。這個問題很簡單 已知2011年11月11日是星期五,問yyyy年mm月dd日是星期幾?注意考慮閏年的情況。尤其是逢百年不閏,逢400年閏的情況。安傑非常愚鈍,你能幫助他嗎?輸入只有一行yyyy mm dd1599 yy...