“PHP學習網” 公眾號會每天分享一些面試題,正在找工作的小夥伴們可以來看看哦。
1、我們知道autoload可以實現類的自動載入,如何把一個類splDemo的方法autoload註冊成為一個__autoload(關鍵詞:spl)
abstract class splDemo {
function __autoload($class){
// ....
}
}
2、下面可以捕獲異常嗎?如何實現捕獲。(關鍵詞:set_error_handler ErrorExcpetion)
try {
//讀取不存在的檔案
file_get_contents('/home/not-exists.file');
} catch (Exception $e){
echo $e->getMessage();
}
3、根據span value的值,排序li,可以使用jQuery
<ul>
<li><span value="3">三</span></li>
<li><span value="1">一</span></li>
<li><span value="2">二</span></li>
</ul>
<script>
$(function(){
var arr=[];
$('span').each(function(i){
arr[arr.length]=$(this).attr('value')+'-'+$(this).html();
});
//倒敘排序
/*function paixu(num1,num2){
if(num1>num2){
return -1;
}else if(num1==num2){
return 0;
}else{
return 1;
}
}
arr.sort(paixu);*/
arr.sort();
$('li').remove();
for(var i=0;i<arr.length;i++){//字串切割-
$('ul').append('<li><span value="'+arr[i]+'">'+arr[i].substr(arr[i].indexOf('-',2))+'</span></li>');
}
});
</script>
4、分別讀取div節點attr屬性值
1) <div attr = "abcd" ></div> // 輸出abcd
2) <div attr="abcd\">"></div> // 輸出abcd">
javacript 答案:alert($("div:eq(1)").attr("attr"));
5、儘可能多的寫出php處理字串函式,並寫出他們對應的作用。
Strops() 返回某個字串在一字串中首先出現的位置
Strstr()返回一個字串在另一個字串中的第一次出現
Substr()擷取字串
Str_replace()字串替換操作,區分大小寫
trim() 刪除字串兩端的空格或其他預定義字元
str_pad() 把字串填充為指定的長度
str_repeat() 重複使用指定字串
str_split() 把字串分割到陣列中
strrev() 反轉字串
str_shuffle() 隨機地打亂字串中所有字元
number_format() 透過千位分組來格式化數字
strtolower() 字串轉為小寫
strtoupper() 字串轉為大寫
strcasecmp() 不區分大小寫比較兩字串
6、語句include和require的區別是什麼?為避免多次包含同意檔案,可用?語句來代替他們?
Include在包含檔案時若出錯,僅報出一條錯誤資訊,程式碼繼續執行
Require在包含檔案時若出錯,報出錯誤資訊的同時程式碼將不會往下執行
避免多次包含同一檔案,可用include_once或者require_once語句來代替他們
(1)include()在執行檔案時每次都要進行讀取和評估;require()檔案只處理一次(實際上檔案內容替換了require()語句)
(2)require()通常放在PHP指令碼程式的最前面include()的使用和require()一樣,一般放在流程控制的處理區段中,PHP指令碼檔案讀到include()語句時,才將它包含的檔案讀進來,這種方式,可以把程式執行時的流程簡單化
(3)require()和include()語句是語言結構,不是真正的函式,可以像PHP的其他語言結構一樣
(4)require()包含檔案失敗,停止執行,給出錯誤(致命的);
(5)include()常用於動態包含.通常是自動載入的檔案,即使載入出錯,整個程式還是繼續執行一個頁面宣告,另一個頁面呼叫包函檔案失敗,繼續向下執行,返回一條警告
(6)include_once()和require_once()語句也是在指令碼執行期間包括並執行指定檔案,與include()require()唯一的區別是如果檔案中的程式碼已經被包括了,則不會再次包括.
7、使用PHP寫一段簡單SQL語句實現增刪改查
主機ip:192.168.1.222
資料庫使用者名稱:root
資料庫密碼:admin123
表名User
name tel content date
張三 13333663366 大專畢業 2006-10-11
張三 13612312331 本科畢業 2006-10-15
張四 021-55665566 中專畢業 2006-10-15
答案:
a、連線資料庫,向user表增加一行資料。
姓名:劉五,電話:18811002233,學歷:本科,日期:當下日期
Insert into User (name,tel,content,date)values(‘劉五’,’ 18811002233’,’本科’,time())
b、刪除姓名為里斯的使用者所有資訊。
Delete from user where name=”里斯”
c、更新手機號碼為1333663366使用者的學歷為“本科”
Update user set ‘content’=’本科’where tel=‘1333663366’
d、查處所有姓名為“張三”的內容並列印出來。
$mysql_db=mysql_connect("local","root","pass");
@mysql_select_db("DB",$mysql_db);
$result = mysql_query("SELECT * FROM `user` WHERE name='張三'");
while($rs = mysql_fetch_array($result)){
echo $rs["tel"].$rs["content"].$rs["date"];
}
8、如何修改SESSION的生存時間。
方法一:
修改php.ini的session_gc_maxlefttime=9999;
方法二:
$savePath = "./session_save_dir/";
$lifeTime = 小時 * 秒;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();
方法三:setcookie() and session_set_cookie_params($lifeTime);
9、用PHP寫出顯示客戶端IP與伺服器IP的程式碼
答:列印客戶端IP:
echo $_SERVER[‘REMOTE_ADDR’];
列印伺服器IP:
echo $_SERVER[‘SERVER_ADDR’];
最後各位可以掃下方二維碼關注我公眾號,目前我正在更新基礎面試題,之後會更新中高階、redis、liunx面試題
本作品採用《CC 協議》,轉載必須註明作者和本文連結