糯米文學吧

位置:首頁 > 計算機 > php語言

PHP大神分享面試技巧

php語言1.11W

PHP新手們是不是對PHP求職感到很迷茫,沒關係,PHP大神來幫你。以下是本站小編精心為大家整理的PHP大神分享面試技巧,希望對大家有所幫助!更多內容請關注應屆畢業生網!

PHP大神分享面試技巧

  x使用哪種網絡協議?

nginx是應用層 我覺得從下往上的話 傳輸層用的是tcp/ip 應用層用的是http

fastcgi負責調度進程

 2. 沒有輸出結果, 可能是什麼原因, 簡述的解決此問題的過程(提示: 語法沒有問題)

可能服務器上面沒有開啟短標籤short_open_tag =設置為Off,,開啟短標籤控制參數: short_open_tag = On

 3. 簡述下面程序的輸出結果, 簡要説明為什麼, 如何解決這類問題?

$tmp = 0 == "a"? 1: 2;

echo $tmp;

?>

結果 1 int和string類型強制轉換造成的,0==="a"

0 == 0 肯定是true啊

PHP是弱類型。。

$tmp = 0 === "a"? 1: 2;

echo $tmp; 這樣就是2

  4. 已知一個字符串如下: $str = "1109063 milo 1";

用一行代碼將該字符串裏面的1109063賦值給$uid, milo賦值給$user, 1賦值給$type

空格如下

list($uid, $user, $type) = explode(" ", $str);

t如下

list($uid, $user, $type) = explode("t", $str);

list($uid, $user, $type) = sscanf($str, "%d %s %d");

$n = sscanf($auth, "%dt%s %s", $id, $first, $last);

 5. 分別列出如下類型的有符號和無符號範圍 TINYINT SMALLINT MEDIUMINT INT

TINYINT-2^7 - 2^7-10 ~ 2^8-1

SMALLINT-2^15 - 2^15-1 0 ~ 2^16-1

MEDIUMINT-2^23 - 2^23-1 0 ~ 2^24-1

INT-2^31 - 2^31-1 0 ~ 2^32-1

 6. 將下面的數組用一行拼裝成一個字符串i am milo! day day up!

$arr = array(

'I', 'AM', 'MILO!', 'DAY', 'DAY', 'UP!'

);

?>

$str = strtolower(implode(" ",$arr));

  7. 調用如下函數獲取函數並獲取count的值

function get_list($cnd = array(), &$count = false)

{

// 偽代碼 處理$cnd 並賦值datas

$datas = 'i am call back';

$count && $count = rand(1, 10000);

return $datas;

}

?>

$count=1;

$data = get_list($cnd,&$count);

echo $count;

 8. 幾種方式去取代session機制, 簡單描述各自的優劣

mysql、memcache、cookie保持一種唯一狀態標識碼

9. 下列HTTP狀態碼出現的可能原因, 如何處理

200, 301, 404, 502, 503

200

請求已成功,請求所希望的響應頭或數據體將隨此響應返回。

301

被請求的資源已永久移動到新位置,並且將來任何對此資源的引用都應該使用本響應返回的若干個 URI 之一。如果可能,擁有鏈接編輯功能的客户端應當自動把請求的地址修改為從服務器反饋回來的地址。除非額外指定,否則這個響應也是可緩存的。   新的永久性的 URI 應當在響應的 Location 域中返回。除非這是一個 HEAD 請求,否則響應的實體中應當包含指向新的 URI 的超鏈接及簡短説明。   如果這不是一個 GET 或者 HEAD 請求,因此瀏覽器禁止自動進行重定向,除非得到用户的確認,因為請求的條件可能因此發生變化。   注意:對於某些使用 HTTP/1.0 協議的瀏覽器,當它們發送的 POST 請求得到了一個301響應的話,接下來的.重定向請求將會變成 GET 方式。

404

請求失敗,請求所希望得到的資源未被在服務器上發現。沒有信息能夠告訴用户這個狀況到底是暫時的還是永久的。假如服務器知道情況的話,應當使用410狀態碼來告知舊資源因為某些內部的配置機制問題,已經永久的不可用,而且沒有任何可以跳轉的地址。404這個狀態碼被廣泛應用於當服務器不想揭示到底為何請求被拒絕或者沒有其他適合的響應可用的情況下。

502

作為網關或者代理工作的服務器嘗試執行請求時,從上游服務器接收到無效的響應。

503

由於臨時的服務器維護或者過載,服務器當前無法處理請求。這個狀況是臨時的,並且將在一段時間以後恢復。如果能夠預計延遲時間,那麼響應中可以包含一個 Retry-After 頭用以標明這個延遲時間。如果沒有給出這個 Retry-After 信息,那麼客户端應當以處理500響應的方式處理它。   注意:503狀態碼的存在並不意味着服務器在過載的時候必須使用它。某些服務器只不過是希望拒絕客户端的連接。

200 OK 一切正常,對GET和POST請求的應答文檔跟在後面。

301 Moved Permanently 客户請求的文檔在其他地方,新的URL在Location頭中給出,瀏覽器應該自動地訪問新的URL

404 Not Found 無法找到指定位置的資源。這也是一個常用的應答。

502 Bad Gateway 服務器作為網關或者代理時,為了完成請求訪問下一個服務器,但該服務器返回了非法的應答。

503 Service Unavailable 服務器由於維護或者負載過重未能應答。例如,Servlet可能在數據庫連接池已滿的情況下返回503。服務器返回503時可以提供一個Retry-After頭。

 10. 有如下數據庫, 用原生態mysql擴展去連接並查詢user表的前十行

host:

port: 3306

user: one

pass: piece

database: db_user

table: user

$link = mysql_connect("","one","piece") or die('Could not connect: 'l_error());

mysql_select_db('db_user',$link);

$query = mysql_query("select * from user limit 10");

while($rs = mysql_fetch_array($query,MYSQL_ASSOC))

{}

 11. 用autoload($class) 實現Lib目錄下的類的自動加載並可以兼容子目錄

$request->action = lcfirst(implode(array_map(

'ucfirst',

explode('-', strtolower($request->action))

)));

------------------------------------------------------------

function __autoload($class)

{

$cls = strtolower(str_replace("_","/",$class));

if(file_exsits(LIB.$cls.''))

{

include_once(LIB.$cls.'');

}

else

{

die("not found {$class} class");

}

}

defined("LIB",'/data/wwwroot/');

$author = new Lib_Author();

-----------------------------------------------------------

function __authload($class)

{

$cls = explode("_",$class);

if(@is_dir($cls[1]))

{

if(@is_file($cls[2]))

{

include_once("CON_PATH".$cls[1].'/'.$cls[2]."");

}

else

{

dir('error');

}

}

else if(@is_file($cls[1].""))

{

include_once("CON_PATH".$cls[1]."");

}

else

{

dir('error');

}

}

---------------------------------------

function __autoload($class)

{

$cls = explode("_",$class);

$file = get_file($cls);

if($file=='error')

{

die('error');

}

include_once($file);

}

function get_file($dir)

{

if(is_array($dir))

{

foreach($dir as $k=>$v)

{

$tmpdir .= $v.'/';

if(is_dir('CON_PATH'.$tmpdir))

{

continue();

}

else if(is_file('CON_PATH'.$tmpdir.""))

{

return 'CON_PATH'.$tmpdir."";

}

else

{

return 'error';

}

}

return 'error';

}

return 'error';

}

defined("CON_PATH","/data/wwwroot/");

$sb = new controller_sb();

------------------------------------

function __autoload_my_classes($classname)

{

# ... your logic to include classes here

}

spl_autoload_register('__autoload_my_classes');

-----------------------------------------------------------

標籤:PHP 大神 面試