php一些基礎知識(很亂)

2021-07-27 09:56:31 字數 2457 閱讀 6508

1. 命名空間: 宣告命名空間的**應該放在<?php **後的第一行, 作用封裝和組織相關的php類,類似把相關的檔案放在同一目錄下一樣

子命名空間使用 \ 分割

同一空間的所有類沒必要寫在同乙個php檔案裡

廠商命名空間是最重要的命名空間,是最頂層的命名空間,用於識別品牌或組織,具有全域性唯一性

2. 全域性命名空間: 有些**沒有命名空間,而是在全域性命名空間中,使用時要在類、函式、介面、常量前加上 \ 符號

3. 介面: 介面是兩個物件導向之間的契約,目的不是讓乙個物件依賴另乙個物件的身份,而是依賴另乙個物件的能力

介面把**和依賴解耦,允許**依賴任何實現介面的第三方**。不關心第三方**怎麼樣實現介面的,而關心有沒有實現介面指定的方法。

4. 生成器簡化版的迭代器,只能前進,不能倒退、快進或查詢

5. 閉包===匿名函式,是closure類的例項,閉包和字串或整數一樣是等值型別, 閉包物件實現了 __invoke 魔術方法,只要變數後有() php就會呼叫 __invoke 魔術方法

6. zend opcache 位元組碼快取,開啟後能儲存編譯好的位元組碼,下次直接執行

opcache.validate_timestamps =

0 引數為0是生成環境,**改動不會影響執行結果 引數為1是開發環境,**改動會立馬生效,已測試驗證過

7. php 從5.4

.0開始 內建的伺服器對開發者是乙個很好的工具,不需要搭建環境了, 但是不應該用於生成環境

8. php不支援路由重寫 需要借助apache或nginx

9. datatime 類提供了物件導向的介面,用於管理時間和日期, createfromformat() 靜態方法可以按照自定義格式生成時間

$datatime

= datatime::createfromformat('自定義的格式','符合自定義格式的具體時間');

10. 強制使用官方手冊

11. pdo: php database object php資料物件,php物件導向方式處理資料, dsn:data source name 資料來源資訊 mysql:host=

127.0

.0.1;dbname=***;port=

3306;charset=utf8

12. 為避免處理多位元組字元出錯,可以安裝mbstring 擴充套件, 不過通常情況下php檔案要用utf-

8的編碼

13. 流的概念,最大的用處可以再流過程中處理資料,檢索關鍵字、替換髒字等,很強大,要使用起來

14. 註冊全域性錯誤處理程式 set_error_handler()

15. 設計模式和物件導向的關係 就相當於 for迴圈和面向過程的關係一樣, 要重用,低耦合高內聚

16. 設計模式的目的就是復用、專

一、解耦、解除依賴(不同職能類之間不能有依賴關係)

17. 一定要使用錯誤報告,在php.ini中設定或在類中加入: ini_set("display_errors","1");error_reporting(e_all);

18. 介面不能傳遞變數但是可以傳遞常量, 介面中定義:const host =

'localhost'; 在實現類中使用: 介面名::host

19. 強制型別轉換要繫結到介面而不繫結到實現類,解除依賴,任何乙個實現類都可以被其他實現類替代

20. 設計模式是建立物件之間的通訊鏈路又不破壞封裝性

21. 為了保持類之間的鬆綁定,通常繼承抽象類,且繼承一層, 應該盡量使用物件的組合,而不類的繼承

22. 設計模式不僅僅是描述類和物件之間的組織模式,還描述了類和物件之間的通訊

23. 聚合和相識相似不過關係更強,介面或抽象類的作用是在模式中提供鬆綁定

24. 物件不應該和物件的建立過程緊密結合,出現了工廠模式

25. 轉殖不會啟動建構函式的動作,不能依賴於建構函式的輸出或返回的結果

26. ——autoload 嘗試載入未定義的類,在例項化非本檔案類的時候自動載入以類名為名稱的檔案

spl_autoload_register — 註冊給定的函式作為 __autoload 的實現,如果沒有實現,則預設呼叫spl_autolaod ,自動包含類名稱的檔案,

spl_autoload_register 可以按順序註冊多個__autoload函式,且可以丟擲異常,更加靈活

27. 介面卡模式:類介面卡(繼承類實現介面,或介面實現多型),物件介面卡

28. 裝飾器模式,客戶端包含元件介面的乙個引用,松耦合,在為現有物件增加或刪除功能時使用,

乙個抽象類繼承另乙個抽象類,並且第二個抽象類的建構函式中引用乙個元件型別

原來:乙個介面,簡單的類實現這個介面,實現基本功能

現在:原來的介面,乙個抽象類實現這個介面(裝飾器),新的類繼承這個抽象類,擁有介面型別的引用

把簡單類的物件傳遞給新的類就可以實現功能的改變,達到裝飾器的效果

有機會好好整理下,不定時補充基礎知識。

一些基礎知識

關於cd cd 返回剛才的位置 關於ls ls l,簡寫ll ls a顯示的檔案以.開頭,隱藏檔案 la al 關於cp cp r tmp dir 拷目錄 tmp拷到dir 需要加 r的 cp rm 10 13 1.grep 在乙個字元集合中找到符合條件的行輸出 如 grep hello file ...

一些基礎知識

linux基礎知識考查 1 在linux 系統中,以 檔案 方式訪問裝置 2 前台起動的程序使用 ctrl c 終止。3 在使用ls 命令時,用八進位制形式顯示非列印字元應使用引數 b 4 在linux 系統中,用來存放系統所需要的配置檔案和子目錄的目錄是 etc 5 在linux 系統中,壓縮檔案...

關於php的一些基礎知識

1.http協議中幾個狀態碼的含義 503 500 401 403 404 200 301 302.答案 503 服務不可用 伺服器目前無法使用 由於超載或停機維護 通常,這只是暫時狀態。500 伺服器內部錯誤 伺服器遇到錯誤,無法完成請求。401 未授權 請求要求身份驗證。對於需要登入的網頁,伺服...