在PHP開發領域,360公司是首屈一指的大廠,因此它的技術面試也是開發者們非常關注的話題。下面,我們就來看一下360 PHP面試題有哪些,以及一些解答和解析。
1、PHP有哪些魔術方法?
__construct()、__destruct()、__call()、__callStatic()、__get()、__set()、__isset()、__unset()、__sleep()、__wakeup()、__toString()、__invoke()、__set_state()、__clone()、__debugInfo()
2、PHP中的define()和const有什么不同?
const定義常量時可以不用用到函數,而define則需要使用函數
const MAX = 100; define('MAX', 100);
3、解釋PHP的自動載入機制。
如果我們使用的類沒有被調用過,會先調用PHP的內置的__autoload()函數,它會自動幫我們載入在代碼中要用到的類的文件。PHP 5.1增加了一個spl_autoload_register()的函數,可以將多個自動載入函數注冊到隊列中,以便于為多個類引入自動載入函數。
function __autoload($class_name) { require_once $class_name . '.php'; } spl_autoload_register('__autoload');
4、怎樣防止PHP代碼被反編譯?
我們可以使用加密算法先將代碼加密,然后將所加密的php文件放到擴展名為.phpade的文件中。phpade會在代碼運行時自動將文件進行解密,然后進行編譯運行。
//加密示例 $path = 'test.php'; $data = file_get_contents($path); $data = base64_encode($data); $encode = ''; for($i=0;$i'); fclose($fh);
5、PHP實現中文字符串截斷函數的實現。
function msubstr($string, $length, $charset="utf-8", $suffix=true){ if(function_exists("mb_substr")){ if(mb_strlen($string, $charset) >$length){ $string= mb_substr($string, 0, $length, $charset); if($suffix) $string .= '...'; }else{ return $string; } }else{ if(strlen($string) >$length){ $string = substr($string, 0, $length); if($suffix) $string .= '...'; }else{ return $string; } } return $string; }
以上就是部分360 PHP面試題的解答和解析,希望能幫助到正在準備360面試的PHP開發者。