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

viphper發表於2020-03-24

“PHP學習網” 公眾號會每天分享一些面試題,正在找工作的小夥伴們可以來看看哦。

一、設$day1,$day2 為yyyy-mm-dd格式的日期

使用mktime()製造出時間戳,再使用date()顯示為yyyy-mm-dd格式的日期

二、請寫出php -l、php -m、php -r的作用。

php –l:檢測PHP的語法
php –r:直接執行PHP程式碼
php –m:將列印出內建以及已載入的PHP及zend模組

三、寫出你熟知的能夠使HTML和PHP分離開使用的模板, 並簡述其工作原理

Smarty

tpl模板檔案由php官方開發的smarty模板語言編寫。 tpl檔案第一次被hbcms系統呼叫後,將自動編譯,並生成php檔案,儲存在template/system/compile目錄裡。 以後再次呼叫tpl檔案,smarty系統會自動判斷tpl檔案是否被修改過,如果沒有被修改,就不再重複編譯,而是直接讀取上一次編譯好的php檔案。

四、如何取得某個程式中, 第n行到第m行之間的程式片段 的執行時間

$start=microtime(true);
程式片段
$end=microtime(true);
echo ($end-$start);

五、如何 實現字串翻轉 ?

1、自帶函式strrev()
2、

$str = "abcdefg";
function strrevv($str){
$len=strlen($str);
$newstr = '';
for($i=$len;$i>=0;$i--){
$newstr .= $str[$i];
}
return $newstr;
}
$showstr = strrevv($str);
echo $showstr."<br>";

六. 說明以下代表的含義: LINE FILE $SERVER[“REMOTE_ADDR”] $SERVER[“PHP_SELF”]

LINE:當前檔案的行數
FILE:返回檔案的完整路徑和檔名。如果用在被包含檔案中,則返回被包含的檔名
$SERVER[“REMOTE_ADDR”]:正在瀏覽當前頁面使用者的 IP 地址。
$SERVER[“PHP_SELF”]:當前正在執行指令碼的檔名

七、如何提高資料庫訪問速度?依據是什麼?

1.表設計一定要優化,冗餘資料最少,少用連線查詢。如果在實際應用中,使用了極其複雜的連線,子查詢,則資料表的設計得要重新考慮了。

2.儘量用char而不是varchar,因為固定長度得string用起來更快.在當今硬碟容量越來越大的情況下,犧牲點儲存空間而換得查詢速度得提升是值得的。

3.通過簡化許可權來提高查詢速度。如果一個查詢之前要執行很多許可權驗證,則查詢速度會慢下來,不妨試著在mysql中用root登入與用你新建的有許可權控制的使用者登入的速度,就可以看出來了,root登入,一下子就進入了,而普通使用者登入,總會延遲一下。

4.表的優化。如果一個表已經用了一段時間,隨著更新和刪除操作的發生,資料將會變得支離破碎,這樣同樣會增加在該表中進行物理搜尋所花費的時間。你要知道的是,在mysql底層設計中,資料庫將被對映到具有某種檔案結構的目錄中,而表則對映到檔案。所以磁碟碎片是很有可能發生的。慶幸的是,在mysql中,我們可以通過下面的語句進行修復:

八、假設您有資料庫(dbname=TEST_DB)足夠的許可權,請為192.168.1.100伺服器上的testuser使用者開放訪問該資料庫的所有許可權併為其設定訪問密碼。

grant all on TEST_DB.* to testuser@192.168.1.100 identified by "123";

九、什麼情況下需要備份資料庫?如何備份資料庫?

儲存資料的完整性,防止資料丟失,病毒感染
1、直接拷貝資料庫檔案
2、使用命令mysqldump
3、使用工具進行備份

十、假設現在mysql伺服器查詢較慢,如何查詢引起緩慢原因的具體查詢語句?如何終止該語句的執行?

用microtime查每句sql語句的執行時間比較長的
用EXPLAIN 語句 來分析一下select 語句的執行效果,例如explain可以獲得select語句
使用的索引情況、排序的情況等等。
終止語句執行可以查出正在執行的程式,然後kill掉就可以了。
SHOW PROCESSLIST;
KILL 查出來的Id;

最後各位可以掃下方二維碼關注我公眾號,目前我正在更新基礎面試題,之後會更新中高階、redis、liunx面試題

本作品採用《CC 協議》,轉載必須註明作者和本文連結

和PHP學習網一起努力學習

相關文章