PHP學習總結(一)
阿新 • • 發佈:2017-07-10
encode 什麽 code 解決 new span att 面向對象 反斜杠
》PHP 面向對象
- 使用parent訪問父類的構造方法(__construct)時一定要為當前類繼承要訪問的構造方法
- 類的構造方法(__construct)在實例化時直接被加載,靜態方法不需要實例化
- 靜態成員(static)訪問方法:self::$abc
- 函數 spl_autoload_register(方法) 僅在使用不存在類時被觸發該方法,並傳入一個類名
- 實例化PDO類時如果當前文件有命名空間(namespace),則輸出後會報錯該目錄下不存在PDO類,所以必須在PDO前加一個反斜杠:\PDO
- 實例化一個類也可以不用變量來存放,如:new PDO()
- preg_match($pattern, $string); 返回匹配次數,參數一是正則表達式,二是匹配內容,此函數只匹配一次,匹配全部請用preg_match_all
- preg_replace(‘/\{\$([\w]+)\}/‘, " b ", ‘個{$dd}f仿{$dd}4s65f‘); 替換正則匹配到的內容並返回,參數一是表達式,二是替換內容,三是原文
- json_encode(); 函數中文亂碼(u265/ 類似情形)和部分符號被轉化解決方法:
foreach ($data as $key => $value) { $data[$key] = urlencode($value); }
- 為每個值urlencode一下,返回時再urldecode(json_encode())就好了!
- namespace(命名空間)使用:一個文件 app\ctrl\model.php,其命名空間應為 namespace App\Ctrl;
- 規範:命名空間每級首字母大寫、類名首字母大寫、常量全部大寫
- 》命名空間和use關鍵字
- 為類起一個命名空間:namespace plugin;
- 使用use訪問這個類:use plugin\nos;
- 註意:使用use訪問類時必須先把這個類引入(include)
- 推薦使用 spl_autoload_register() 自動為你加載不存在的類
》PHP 模板
1. 為什麽要使用模板?
- 為了分離php和HTML代碼,使可維護性更高!
2. 為什麽要緩存模板?
- 為了提高加載速度,提高性能和數據庫承受能力!
3. 為什麽要把模板編譯成PHP文件?
- 模板中使用了一些自定義語法,如 {$name} , 為了使其正常顯示,需將它轉換為 <?php echo $name 輸出,將轉換後的文件編譯成文件,下次直接調用!
4. 如何將模板緩存?
- 將引入的編譯文件放如緩沖器 ob_start() ,然後使用 ob_get_contents() 將復制到的內容用 file_put_contents() 保存成緩存文件
PHP學習總結(一)