欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php程序員面試題都有哪些

榮姿康2年前23瀏覽0評論
php程序員面試題都有哪些?

想了解IT界的那些事兒,請關(guān)注萌新程序猿?。?!

剛好我之前在自己的個(gè)人網(wǎng)站(www.onezero.cc

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

首先總結(jié)一下,既然是php程序員,下面的知識是最基本的:

你需要了解PHP的各類基礎(chǔ)知識,php語法、面向?qū)ο?、設(shè)計(jì)模式等等,其次你需要懂得PHP的開發(fā)框架的知識,tp、laveral、yii等,再次你需要了解前端的知識,了解數(shù)據(jù)庫(mysql等)的知識,了解php運(yùn)行的服務(wù)器環(huán)境nginx、apache等,更進(jìn)一步你需要了解redis、緩存之類,最后你需要掌握web開發(fā)安全的相關(guān)知識,比如sql注入、xss等。寫接口,很多公司是前后端完全分離。個(gè)人面試整理

1.PHP的魔術(shù)變量都有什么?

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

2.PHP超級全局變量(9個(gè))

$GLOBALS 儲存全局作用域中的變量 $_SERVER 獲取服務(wù)器相關(guān)信息 $_REQUEST 獲取POST和GET請求的參數(shù) $_POST 獲取表單的POST請求參數(shù) $_GET 獲取表單的GET請求參數(shù) $_FILES 獲取上傳文件的的變量 $_ENV 獲取服務(wù)器端環(huán)境變量的數(shù)組 $_COOKIE 瀏覽器cookie的操作 設(shè)置cookie:setcookie(name, value, expire, path, domain); 獲取cookie:$_COOKIE[“user”]; 刪除cookie:setcookie(“user”, “”, time()-3600);//設(shè)置過期時(shí)間 $_SESSION 服務(wù)端session的操作 使用session前一定要session_start()啟動session 儲存session:$_SESSION[“name”]=”King”;//數(shù)組操作 銷毀session:unset($_SESSION[“name”]);//銷毀一個(gè) session_destroy()和unset($_SESSION);//銷毀所有的session

3.PHP魔術(shù)函數(shù)(13個(gè))

__construct() 實(shí)例化對象時(shí)被調(diào)用,當(dāng)__construct和以類名為函數(shù)名的函數(shù)同時(shí)存在時(shí),__construct將被調(diào)用,另一個(gè)不被調(diào)用。 __destruct() 當(dāng)刪除一個(gè)對象或?qū)ο蟛僮鹘K止時(shí)被調(diào)用。 __call() 對象調(diào)用某個(gè)方法,若方法存在,則直接調(diào)用;若不存在,則會去調(diào)用__call函數(shù)。 __get() 讀取一個(gè)對象的屬性時(shí),若屬性存在,則直接返回屬性值;若不存在,則會調(diào)用__get函數(shù)。 __set() 設(shè)置一個(gè)對象的屬性時(shí),若屬性存在,則直接賦值;若不存在,則會調(diào)用__set函數(shù)。 __toString() 打印一個(gè)對象的時(shí)被調(diào)用。如echo $obj;或print $obj; __clone() 克隆對象時(shí)被調(diào)用。如:$t=new Test();$t1=clone $t; __sleep() serialize之前被調(diào)用。若對象比較大,想刪減一點(diǎn)東東再序列化,可考慮一下此函數(shù)。 __wakeup() unserialize時(shí)被調(diào)用,做些對象的初始化工作。 __isset() 檢測一個(gè)對象的屬性是否存在時(shí)被調(diào)用。如:isset($c->name)。 __unset() unset一個(gè)對象的屬性時(shí)被調(diào)用。如:unset($c->name)。 __set_state() 調(diào)用var_export時(shí),被調(diào)用。用__set_state的返回值做為var_export的返回值。 __autoload() 實(shí)例化一個(gè)對象時(shí),如果對應(yīng)的類不存在,則該方法被調(diào)用。

4.前端后端的常用開發(fā)框架都有哪些?

前端:(1) CSS: Bootstrap、EasyUI

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

后端:thinkPHP、Yii、Laravel、swoole、workerman(當(dāng)時(shí)只想到這幾個(gè))、。

5.如何查看防火墻開放的端口號service iptables status

6.查看防火墻特定的端口號,例如80端口的狀態(tài)?netstat -an | grep 80 查看80端口被什么占用netstat -tunlp | grep 80lsof -i:80

7.Linux系統(tǒng)中System進(jìn)程占用大量CPU,可能的原因?(1) 進(jìn)入了一個(gè)死循環(huán)無法跳出來;(2) 也許是一直在等待一個(gè)信號,如從dbus上讀取一個(gè)用戶需要的信息; #dbus是一個(gè)為應(yīng)用程序間通信的消息總線系統(tǒng), 用于進(jìn)程之間的通信。(3) 有可能是程序在對一個(gè)非常大的內(nèi)容進(jìn)行分析和處理;(4) 有可能是程序要處理的問題比較多,所以在一個(gè)個(gè)慢慢的執(zhí)行。

8.說一下HTTP2.0與HTTP1.0的根本區(qū)別。

9.InnoDB和MyISAM的區(qū)別是什么,二者分別應(yīng)用與什么方面?

10.用盡量多的方法說明如何提高一個(gè)網(wǎng)頁的訪問速度。

11.請?jiān)O(shè)計(jì)一個(gè)通信協(xié)議,實(shí)現(xiàn)與攝像頭之間的通信,要注意協(xié)議的安全性和可擴(kuò)展性。

12.如果一個(gè)公司有幾十個(gè)系統(tǒng),每一個(gè)系統(tǒng)都需要登錄,現(xiàn)在請你設(shè)計(jì)一個(gè)系統(tǒng),可以實(shí)現(xiàn)每一個(gè)系統(tǒng)的單點(diǎn)登錄。

其他整理

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

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

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

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

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

print_r可以打印出復(fù)雜類型變量的值(如數(shù)組,對象)

echo — 輸出一個(gè)或者多個(gè)字符串

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

smarty,Heyes Template Class等

5、使用哪些工具進(jìn)行版本控制?

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

6、如何實(shí)現(xiàn)字符串翻轉(zhuǎn)?

strrev()

7、優(yōu)化MYSQL數(shù)據(jù)庫的方法。

(1).選取最適用的字段屬性,應(yīng)該盡量把字段設(shè)置為NOT NULL,這樣在將來執(zhí)行查詢的時(shí)候,數(shù)據(jù)庫不用去比較NULL值。

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

(3).使用聯(lián)合(UNION)來代替手動創(chuàng)建的臨時(shí)表

(4).盡量少使用 LIKE 關(guān)鍵字和通配符

(5).使用事務(wù)和外鍵

8、PHP的意思

Hypertext Preprocessor

9、MYSQL取得當(dāng)前時(shí)間的函數(shù)是?,格式化日期的函數(shù)是

now(), DATE_FORMAT(date,format)

10、實(shí)現(xiàn)中文字串截取無亂碼的方法。

mb_substr()

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

TortoiseSVN-1.2.6 svn-1.2.3

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

smarty

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

14、對于大流量的網(wǎng)站,您采用什么樣的方法來解決訪問量問題?

首先,確認(rèn)服務(wù)器硬件是否足夠支持當(dāng)前的流量

其次,優(yōu)化數(shù)據(jù)庫訪問。

第三,禁止外部的盜鏈。

第四,控制大文件的下載。

第五,使用不同主機(jī)分流主要流量

第六,使用流量分析統(tǒng)計(jì)軟件。

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

15、用PHP寫出顯示客戶端IP與服務(wù)器IP的代碼

16、語句include和require的區(qū)別是什么?為避免多次包含同一文件,可用(?)語句代替它們?

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

方面都完全一樣。include()產(chǎn)生一個(gè)警告而require()則導(dǎo)致一個(gè)致命錯(cuò)誤。

換句話說,如果你想在丟失文件時(shí)停止處理頁面,用require()。include() 就不是這樣,腳本會繼續(xù)運(yùn)行。

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

代替用

include_once

require_once

17、如何修改SESSION的生存時(shí)間.

18、有一個(gè)網(wǎng)頁地址, 比如PHP開發(fā)資源網(wǎng)主頁: ,如何得到它的內(nèi)容?

19、在HTTP 1.0中,狀態(tài)碼401的含義是(?);如果返回“找不到文件”的提示,則可用 header 函數(shù),其語句為(?);

未授權(quán)(Unauthorized)