<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【精講】2022年P(guān)HP中高級面試題

          共 1187字,需瀏覽 3分鐘

           ·

          2022-02-17 13:59

          1.進程,線程及通信方式
          https://www.php.cn/php-ask-453612.html?
          進程和線程有點主從關(guān)系一樣的,線程共享進程的資源
          進程間通信方式:

          1.?管道?
          2.?信號?
          3.?消息隊列?Posix?消息隊列
          4.?共享內(nèi)存?
          5.?套接口


          2.Php 查看擴展路徑

          php?-i?|?grep?-i?extension_dir?
          或者?phpinfo?來看一下?
          或者?echo?ini_get('extension_dir');


          3. Php 底層數(shù)組實現(xiàn)方式
          linked list + hashtable 雙向鏈表是中間映射表,用來存放索引和具體存儲位置,然后 具體存儲位置對應的具體值在 hashtable 中


          4.寫時復制:
          如果兩個變量是相同的值,則共享同一塊內(nèi)存,而那塊內(nèi)存的 is_ref =1 refcount = 1 后者被引用一次 +1,為 0 的時候被銷毀,相當于資源延遲分配。
          垃圾回收:
          不會立即回收,會放入緩沖區(qū)(一個雙向鏈表),然后默認到了 10000 個開始回收,先 將 refcount -1 , =0 則進行回收

          5.解決內(nèi)存溢出:

          ? ? ?1、要增加PHP可用內(nèi)存大小
          ?????2、對數(shù)組進行分批處理,將用過的變量及時銷毀;
          ????3、盡可能減少靜態(tài)變量的使用;
          ??? 4、數(shù)據(jù)庫操作完成后,要馬上關(guān)閉連接。
          ????5、可以使用 memory_get_usage () 函數(shù),獲取當前占用內(nèi)存 根據(jù)當前使用的內(nèi)存來 調(diào)整程序
          引申:

          • unset () 函數(shù)只能在變量值占用內(nèi)存空間超過 256 字節(jié)時才會釋放內(nèi)存空間

          • 有當指向該變量的所有變量(如引用變量)都被銷毀后,才會釋放內(nèi)存

          • unset 被引用的變量只會解除引用關(guān)系,不會銷毀該變量

          6.Php7 新特性

          https://www.php.net/manual/zh/migration70.new-features.php?

          簡要總結(jié)就是:

          標量類型聲明、返回值類型聲明、通過 define() 定義常量數(shù)組、匿名類、相同命名空間 類一次性導入


          7.Php7 底層優(yōu)化:

          1. ZVAL 結(jié)構(gòu)體優(yōu)化,占用由24字節(jié)降低為16字節(jié)

          2. 內(nèi)部類型 zend_string,結(jié)構(gòu)體成員變量采用 char 數(shù)組,不是用 char*

          3. PHP 數(shù)組實現(xiàn)由 hashtable 變?yōu)?zend array

          4. 函數(shù)調(diào)用機制,改進函數(shù)調(diào)用機制,通過優(yōu)化參數(shù)傳遞環(huán)節(jié),減少了一些指令

          8.Php 排序二維數(shù)組 array_multisort + array_column 就行


          ??$user_list?=?[
          ????['name'?=>?'張三',?'age'?=>?28],
          ????['name'?=>?'趙六',?'age'?=>?21],
          ????['name'?=>?'王五',?'age'?=>?20],
          ????['name'?=>?'李四',?'age'?=>?21]
          ?];

          ?array_multisort(array_column($user_list,?'age'),SORT_ASC,$user_list);
          ?var_dump($user_list);


          9.緩存的應用場景:

          • 數(shù)據(jù)不需要強一致性

          • 讀多寫少,并且讀取得數(shù)據(jù)重復性較高


          10.Php 異步執(zhí)行腳本:

          1. popen 調(diào)用腳本,缺點是無法跨越,不能傳參,會產(chǎn)生進程,高并發(fā)了會創(chuàng)建大量 進程

          2. curl 方式,最小響應超時時間是 1s,也受限

          3. fsockopen 打開一個網(wǎng)絡(luò)連接或者 unix 套接字連接,原理和 http 一致,支持毫秒 級超時處理

          4. 引入 swoole? ?https://www.php.cn/php-weizijiaocheng-469392.html


          11.常見狀態(tài)碼

          ? ??一二三四五原則:(即一:消息系列;二:成功系列; 三:重定向系列;四:請求錯誤系 列;五:服務器端錯誤系列。
          301 狀態(tài)碼是永久移動
          302 是臨時移動

          304 如果請求頭中帶有 If-None-Match If-Modified-Since,則會到源服務器進行有效性校驗,如果源服務器資源沒有變化,則會返回304,同時不返回內(nèi)容;如果有變 化,則返回200;

          500 代碼 文件權(quán)限 資源有問題
          501 請求方法服務器不支持

          502 網(wǎng)關(guān)錯誤,例如得到了一個無效響應一類的就會出現(xiàn)這種錯誤
          503 超載或者維護模式
          504 網(wǎng)關(guān)超時,即在指定時間內(nèi)沒有正確的響應
          499 客戶端關(guān)閉請求,例如客戶端請求 1s 內(nèi)結(jié)束,php 未返回結(jié)果,或者找不到要請 求的地址,會返回 499 錯誤


          往期推薦



          騰訊PHP/GO工程師面試經(jīng)歷

          2021年12月PHP面試題總結(jié)

          穩(wěn)了!學會這些PHP面試題成功拿下offer

          2021年最新資源列表【建議收藏并分享】

          淺談面試經(jīng)驗(面試官角度)

          盤點2021年P(guān)HP開發(fā)工程師遇到的面試題


          瀏覽 87
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天综合视频 | 日穴视频 | 日韩无码蜜桃 | 免费的黄色小视频 | 亚洲天堂v|