程式設計師找工作必備 PHP 基礎面試題 - 第九天

viphper發表於2020-03-21

“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 協議》,轉載必須註明作者和本文連結

和PHP學習網一起努力學習

相關文章