PHP基礎面試題 - 第九天

「PHP學習網」 公衆號會天天分享一些面試題,正在找工做的小夥伴們能夠來看看哦。

一、咱們知道__autoload能夠實現類的自動載入,如何把一個類splDemo的方法__autoload註冊成爲一個__autoload(關鍵詞:spl)

abstract class splDemo {
    function __autoload($class){
         // ....
     }
 }

二、下面能夠捕獲異常嗎?如何實現捕獲。(關鍵詞:set_error_handler ErrorExcpetion)

try {
     //讀取不存在的文件
     file_get_contents('/home/not-exists.file');
 } catch (Exception $e){
     echo $e->getMessage();
 }

三、根據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>

四、分別讀取div節點attr屬性值

1) <div attr = "abcd" ></div> // 輸出abcd
   2) <div attr="abcd\">"></div> // 輸出abcd">

javacript 答案:alert($("div:eq(1)").attr("attr")); javascript

五、儘量多的寫出php處理字符串函數,並寫出他們對應的做用。

Strops() 返回某個字符串在一字符串中首先出現的位置
Strstr()返回一個字符串在另外一個字符串中的第一次出現
Substr()截取字符串
Str_replace()字符串替換操做,區分大小寫php

trim() 刪除字符串兩端的空格或其餘預約義字符
str_pad() 把字符串填充爲指定的長度
str_repeat() 重複使用指定字符串
str_split() 把字符串分割到數組中
strrev() 反轉字符串
str_shuffle() 隨機地打亂字符串中全部字符
number_format() 經過千位分組來格式化數字
strtolower() 字符串轉爲小寫
strtoupper() 字符串轉爲大寫
strcasecmp() 不區分大小寫比較兩字符串html

六、語句include和require的區別是什麼?爲避免屢次包含贊成文件,可用?語句來代替他們?

Include在包含文件時若出錯,僅報出一條錯誤信息,代碼繼續執行
Require在包含文件時若出錯,報出錯誤信息的同時代碼將不會往下執行
避免屢次包含同一文件,可用include_once或者require_once語句來代替他們java

(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()惟一的區別是若是文件中的代碼已經被包括了,則不會再次包括.mysql

七、使用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面試

答案:redis

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"];
    }

八、如何修改SESSION的生存時間。

方法一:
修改php.ini的session_gc_maxlefttime=9999;sql

方法二:數據庫

$savePath = "./session_save_dir/";
$lifeTime = 小時 * 秒;
session_save_path($savePath);
session_set_cookie_params($lifeTime);
session_start();

方法三:setcookie() and session_set_cookie_params($lifeTime);數組

九、用PHP寫出顯示客戶端IP與服務器IP的代碼

答:打印客戶端IP:

echo $_SERVER[‘REMOTE_ADDR’];

打印服務器IP:

echo $_SERVER[‘SERVER_ADDR’];
最後各位能夠掃下方二維碼關注我公衆號,目前我正在更新基礎面試題,以後會更新中高級、redis、liunx面試題

weixin.jpg

相關文章
相關標籤/搜索