回覆列表
  • 1 # 一零言

    想了解IT界的那些事兒,請關注萌新程式猿!!!

    )中整理過此類的知識,因此特地奉上。

    首先總結一下,既然是php程式設計師,下面的知識是最基本的:

    你需要了解PHP的各類基礎知識,php語法、面向物件、設計模式等等,其次你需要懂得PHP的開發框架的知識,tp、laveral、yii等,再次你需要了解前端的知識,瞭解資料庫(mysql等)的知識,瞭解php執行的伺服器環境nginx、apache等,更進一步你需要了解redis、快取之類,最後你需要掌握web開發安全的相關知識,比如sql注入、xss等。寫介面,很多公司是前後端完全分離。個人面試整理

    1.PHP的魔術變數都有什麼?

    __LINE__  檔案中的當前行號。  __FILE__  檔案的完整路徑和檔名。如果用在被包含檔案中,則返回被包含的檔名。  __DIR__  檔案所在的目錄。如果用在被包括檔案中,則返回被包括的檔案所在的目錄。  __FUNCTION__  常量返回該函式被定義時的名字  __CLASS__  常量返回該類被定義時的名字(區分大小寫)。  __METHOD__  類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。  __NAMESPACE__  當前名稱空間的名稱(區分大小寫)。此常量是在編譯時定義。

    2.PHP超級全域性變數(9個)

    $GLOBALS  儲存全域性作用域中的變數  $_SERVER  獲取伺服器相關資訊  $_REQUEST 獲取POST和GET請求的引數  $_POST   獲取表單的POST請求引數  $_GET   獲取表單的GET請求引數  $_FILES   獲取上傳檔案的的變數  $_ENV   獲取伺服器端環境變數的陣列  $_COOKIE  瀏覽器cookie的操作         設定cookie:setcookie(name, value, expire, path, domain);         獲取cookie:$_COOKIE[“user”];         刪除cookie:setcookie(“user”, “”, time()-3600);//設定過期時間  $_SESSION  服務端session的操作         使用session前一定要session_start()啟動session         儲存session:$_SESSION[“name”]=”King”;//陣列操作         銷燬session:unset($_SESSION[“name”]);//銷燬一個         session_destroy()和unset($_SESSION);//銷燬所有的session

    3.PHP魔術函式(13個)

    __construct()   例項化物件時被呼叫,當__construct和以類名為函式名的函式同時存在時,__construct將被呼叫,另一個不被呼叫。  __destruct()   當刪除一個物件或物件操作終止時被呼叫。  __call()      物件呼叫某個方法,若方法存在,則直接呼叫;若不存在,則會去呼叫__call函式。  __get()     讀取一個物件的屬性時,若屬性存在,則直接返回屬性值;若不存在,則會呼叫__get函式。  __set()     設定一個物件的屬性時,若屬性存在,則直接賦值;若不存在,則會呼叫__set函式。  __toString()   列印一個物件的時被呼叫。如echo $obj;或print $obj;  __clone()    克隆物件時被呼叫。如:$t=new Test();$t1=clone $t;  __sleep()    serialize之前被呼叫。若物件比較大,想刪減一點東東再序列化,可考慮一下此函式。  __wakeup()   unserialize時被呼叫,做些物件的初始化工作。  __isset()    檢測一個物件的屬性是否存在時被呼叫。如:isset($c->name)。  __unset()    unset一個物件的屬性時被呼叫。如:unset($c->name)。  __set_state()  呼叫var_export時,被呼叫。用__set_state的返回值做為var_export的返回值。  __autoload()   例項化一個物件時,如果對應的類不存在,則該方法被呼叫。

    4.前端後端的常用開發框架都有哪些?

    前端:(1) CSS: Bootstrap、EasyUI

    (2)JavaScript:VUE.js、angular.Js、jQuery.js。

    後端:thinkPHP、Yii、Laravel、swoole、workerman(當時只想到這幾個)、。

    5.如何檢視防火牆開放的埠號service iptables status

    6.檢視防火牆特定的埠號,例如80埠的狀態?netstat -an | grep 80 檢視80埠被什麼佔用netstat -tunlp | grep 80lsof -i:80

    7.Linux系統中System程序佔用大量CPU,可能的原因?(1) 進入了一個死迴圈無法跳出來;(2) 也許是一直在等待一個訊號,如從dbus上讀取一個使用者需要的資訊; #dbus是一個為應用程式間通訊的訊息匯流排系統, 用於程序之間的通訊。(3) 有可能是程式在對一個非常大的內容進行分析和處理;(4) 有可能是程式要處理的問題比較多,所以在一個個慢慢的執行。

    8.說一下HTTP2.0與HTTP1.0的根本區別。

    9.InnoDB和MyISAM的區別是什麼,二者分別應用與什麼方面?

    10.用盡量多的方法說明如何提高一個網頁的訪問速度。

    11.請設計一個通訊協議,實現與攝像頭之間的通訊,要注意協議的安全性和可擴充套件性。

    12.如果一個公司有幾十個系統,每一個系統都需要登入,現在請你設計一個系統,可以實現每一個系統的單點登入。

    其他整理

    1、用PHP打印出前一天的時間格式是2017-9-5 15:30:21

    echo date(‘Y-m-d H:i:s’, strtotime(‘-1 day’));

    2、echo(),print(),print_r()的區別

    echo是PHP語句, print和print_r是函式,語句沒有返回值,函式可以有返回值(即便沒有用)

    print只能打印出簡單型別變數的值(如int,string)

    print_r可以打印出複雜型別變數的值(如陣列,物件)

    echo — 輸出一個或者多個字串

    3、能夠使HTML和PHP分離開使用的模板

    smarty,Heyes Template Class等

    5、使用哪些工具進行版本控制?

    VS Server on Apache作服務端,WinCVS作客戶端;Subversion on Apache/DAV 做服務端,TortoiseSVN做客戶端,或者Subclipse做客戶端.

    6、如何實現字串翻轉?

    strrev()

    7、最佳化MYSQL資料庫的方法。

    (1).選取最適用的欄位屬性,應該儘量把欄位設定為NOT NULL,這樣在將來執行查詢的時候,資料庫不用去比較NULL值。

    (2).使用連線(JOIN)來代替子查詢(Sub-Queries)

    (3).使用聯合(UNION)來代替手動建立的臨時表

    (4).儘量少使用 LIKE 關鍵字和萬用字元

    (5).使用事務和外來鍵

    8、PHP的意思

    Hypertext Preprocessor

    9、MYSQL取得當前時間的函式是?,格式化日期的函式是

    now(), DATE_FORMAT(date,format)

    10、實現中文字串擷取無亂碼的方法。

    mb_substr()

    11、您是否用過版本控制軟體? 如果有您用的版本控制軟體的名字是?

    TortoiseSVN-1.2.6 svn-1.2.3

    12、您是否用過模板引擎? 如果有您用的模板引擎的名字是?

    smarty

    13、請簡單闡述您最得意的開發之作

    14、對於大流量的網站,您採用什麼樣的方法來解決訪問量問題?

    首先,確認伺服器硬體是否足夠支援當前的流量

    其次,最佳化資料庫訪問。

    第三,禁止外部的盜鏈。

    第四,控制大檔案的下載。

    第五,使用不同主機分流主要流量

    第六,使用流量分析統計軟體。

    —————————————————————–

    15、用PHP寫出顯示客戶端IP與伺服器IP的程式碼

    16、語句include和require的區別是什麼?為避免多次包含同一檔案,可用(?)語句代替它們?

    require()和include()除了怎樣處理失敗之外在各

    方面都完全一樣。include()產生一個警告而require()則導致一個致命錯誤。

    換句話說,如果你想在丟失檔案時停止處理頁面,用require()。include() 就不是這樣,指令碼會繼續執行。

    require()無論如何都會包含檔案,而include()可以有選擇地包含.

    代替用

    include_once

    require_once

    17、如何修改SESSION的生存時間.

    18、有一個網頁地址, 比如PHP開發資源網主頁: ,如何得到它的內容?

    19、在HTTP 1.0中,狀態碼401的含義是(?);如果返回“找不到檔案”的提示,則可用 header 函式,其語句為(?);

    未授權(Unauthorized)

  • 中秋節和大豐收的關聯?
  • 怎樣對待鬧洞房?