国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP面試

trilever / 988人閱讀

摘要:服務器返回此響應對或請求的響應時,會自動將請求者轉到新位置。未授權請求要求身份驗證。方法禁用禁用請求中指定的方法。請求范圍不符合要求如果頁面無法提供請求的范圍,則服務器會返回此狀態(tài)代碼。服務不可用服務器目前無法使用由于超載或停機維護。

PHP基礎篇 打印函數

簡述一下echo print print_r var_dump區(qū)別

echo 輸出一個或多個字符串,無返回值
print 僅支持一個參數,并總是返回 1
print_r 顯示一個變量的信息,有返回值
var_dump 打印一個或多個表達式的結構信息,包括表達式的類型與值,無返回值
printf 輸出格式化字符串,返回輸出字符串的長度
運算符
遞增/遞減運算符不影響布爾值,遞減 NULL 值也沒有效果,但是遞增 NULL 的結果是 1`
// 題1:寫出輸出結果
$a = 5;
$b = 1;
if ($a = 3 || $b = 3) {
    $a++;
    $b++;
    echo $a . "
"; // 1
    echo $b . "
"; // 2
}

// 題2
$x = true and false;
var_dump($x);  // bool(true)

// 題3
$z = 2;
$x = $z + $z + $z = 3;
echo $x; // 7

請在表格右側寫出執(zhí)行每一行代碼后每個變量的值

$a=1;$b=1;$c=1;$d=1;$e=1; $a $b $c $d $e
$b = &$a; 1 1 1 1 1
$b = "6$b"; 61 61 1 1 1
$c = $e = (++$b); 62 62 62 1 62
$d = ($c>$b) ? ($a+=10) : ($b--); 61 61 62 62 62
$e = implode("," ,[$e,$c]); 61 61 62 62 62,
類型轉換 進制轉換
echo (int)((0.1+0.7)*10); // 輸出 7
var_dump(0123 == 123); // bool(false)
var_dump(0123 == 83); // bool(true)
var_dump("0123" == 123); // bool(true)
var_dump("0123" === 123); // bool(false)
引用

筆試必考

參考

// 題1
$arr = ["a", "b", "c"];
foreach ($arr as &$v) {
    echo $v . "
"; // a b c
}
foreach ($arr as $v) {
    echo $v . "
"; // a b b
}

// 題2
$data = ["a", "b", "c", "d"];
foreach ($data as $key => $value) {
    $value = &$data[$key];
}
print_r($data); // b c d d
遞歸,靜態(tài)變量

找規(guī)律:1,1,2,3,5,8,13,21...,用遞歸實現求第n位數字

// 遞歸
function foo($n)
{
    if ($n == 1 || $n == 2) {
        return 1;
    }
    return foo($n - 1) + foo($n - 2);
}
// 如何優(yōu)化
function foo($n)
{
    static $result = [1 => 1, 2 => 1];
    if (isset($result[$n])) return $result[$n];
    return $result[$n] = foo($n - 2) + foo($n - 1);
}
文件

遞歸循環(huán)某目錄下的子目錄及文件并輸出

function showDir($path)
{
    if (!is_dir($path)) return false;
    $path = rtrim($path, "/");
    $arr = glob($path . "/*");
    foreach ($arr as $id => $v) {
        if (is_dir($v)) $arr[$id] = [$v => showDir($v)];
    }
    return $arr;
}

用多個函數實現獲取文件擴展名

function getExtenstion()
{
    return pathinfo("./a.php", PATHINFO_EXTENSION);
}
Session和Cookie
cookie和session原理及區(qū)別
PHP7新特性

從PHP 5.6.x 到 PHP 7.0.x

標量類型聲明,返回值類型聲明
null合并運算符(??),太空船操作符(<=>)
通過 define() 定義常量數組
匿名類--支持通過new class 來實例化一個匿名類
...

從PHP 7.0.x 到 PHP 7.1.x
從PHP 7.1.x 到 PHP 7.2.x

面向對象
new static() 和 new self() 的區(qū)別
如何獲取類的默認屬性
魔術方法有哪些
實現迭代器和迭代
重寫父類的 protected 方法有什么限制
類的自動加載

如何實現類的自動加載

spl_autoload_register(function ($class_name) {
    $file = "./" . $class_name . ".php";
    if (file_exists($file)) require_once $file;
});
魔術方法
__toString __invoke
// 實現如下函數(PHP 7)
echo a(1, 3); // 4
echo a(3)(5); // 8
echo a(1, 2)(3, 4, 5)(6); // 21

class cAdd{
    protected $n = 0;

    public function __toString()
    {
        return strval($this->n);
    }

    public function __invoke(...$args)
    {
        $this->n += array_sum($args);
        return $this;
    }
}

function add()
{
    return call_user_func_array(new cAdd(),func_get_args());
}
__set,__get,__isset,__unset
class PropertyTest
{
    private $data = array();

    public function __set($name, $value)
    {
        $this->data[$name] = $value;
    }

    public function __get($name)
    {
        if (array_key_exists($name, $this->data)) {
            return $this->data[$name];
        }
        return null;
    }

//    public function __isset($name)
//    {
//        return isset($this->data[$name]);
//    }

    public function __unset($name)
    {
        unset($this->data[$name]);
    }
}

$obj = new PropertyTest;
$obj->test = 1;
var_dump($obj->test); // int(1)
var_dump(isset($obj->test)); // bool(false)
unset($obj->a);
var_dump(isset($obj->test)); // bool(false)
設計模式
單例模式
工廠模式
觀察者模式
注冊模式
適配器模式
如何理解MVC
MVC設計模式(Model模型-View視圖-Controller控制器)一種軟件架構模式
控制器負責處理用戶的請求(包括數據模型的調用以及對表現層的輸出控制)
模型負責處理具體的業(yè)務邏輯
視圖負責展示結果給用戶

深層次理解MVC

數據庫 MySQL存儲引擎
MySQL存儲引擎有哪些?
MyISAN與InnoDB的區(qū)別?

MySQL索引

索引,唯一索引,主鍵索引,聯合索引區(qū)別

索引是一種特殊的文件,它們包含著對數據表里所有記錄的引用指針
唯一索引的所有值都具有唯一性,可以是單列,也可以是多列
主鍵索引是一種特殊的唯一索引,每個表只能有一個主鍵
聯合索引是對多個字段同時建立的索引,有順序,最左原則
索引可以極大的提高數據的查詢速度,但是會降低插入刪除更新表的速度
事務 MySQL事務嵌套
// 以下SQL會插入3條數據
begin;
insert a (id) values (null);
    begin;
    insert a (id) values (null);
        begin;
        insert a (id) values (null);
        commit;
    rollback;
rollback;
分布式事務最終一致性 SQL
// 把b表某字段更新到a表中,a.bid=b.id
update a,b set a.name=b.name where a.bid=b.id;

// 查詢薪資前三高的員工
redis

redis的數據類型

常用數據類型有:String字符串,Hash散列,List列表,Set集合,Sorted Set有序集合

如何提高緩存命中率

參考  可以通過緩存預加載(預熱)、增加存儲容量、調整緩存粒度、優(yōu)化緩存的更新/過期策略等手段來提高命中率

redis緩存穿透、緩存擊穿和緩存雪崩

redis一致性hash

redis和memcache有什么區(qū)別,優(yōu)劣勢

理論知識 HTTP協(xié)議 HTTP狀態(tài)碼
// 2xx 成功
200 (成功) 服務器已成功處理了請求。通常,這表示服務器提供了請求的網頁。
// 3xx 重定向
300 (多種選擇) 針對請求,服務器可執(zhí)行多種操作。服務器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇。
301 (永久移動) 請求的網頁已永久移動到新位置。服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。
302 (臨時移動) 服務器目前從不同位置的網頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。
303 (查看其他位置) 請求者應當對不同的位置使用多帶帶的 GET 請求來檢索響應時,服務器返回此代碼。
304 (未修改) 自從上次請求后,請求的網頁未修改過。服務器返回此響應時,不會返回網頁內容。
305 (使用代理) 請求者只能使用代理訪問請求的網頁。如果服務器返回此響應,還表示請求者應使用代理。
307 (臨時重定向) 服務器目前從不同位置的網頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。
// 4xx 請求錯誤
400 (錯誤請求) 服務器不理解請求的語法。
401 (未授權) 請求要求身份驗證。 對于需要登錄的網頁,服務器可能返回此響應。
403 (禁止) 服務器拒絕請求。
404 (未找到) 服務器找不到請求的網頁。
405 (方法禁用) 禁用請求中指定的方法。
406 (不接受) 無法使用請求的內容特性響應請求的網頁。
407 (需要代理授權) 此狀態(tài)代碼與 401(未授權)類似,但指定請求者應當授權使用代理。
408 (請求超時) 服務器等候請求時發(fā)生超時。
409 (沖突) 服務器在完成請求時發(fā)生沖突。服務器必須在響應中包含有關沖突的信息。
410 (已刪除) 如果請求的資源已永久刪除,服務器就會返回此響應。
411 (需要有效長度) 服務器不接受不含有效內容長度標頭字段的請求。
412 (未滿足前提條件) 服務器未滿足請求者在請求中設置的其中一個前提條件。
413 (請求實體過大) 服務器無法處理請求,因為請求實體過大,超出服務器的處理能力。
414 (請求的 URI 過長) 請求的 URI(通常為網址)過長,服務器無法處理。
415 (不支持的媒體類型) 請求的格式不受請求頁面的支持。
416 (請求范圍不符合要求) 如果頁面無法提供請求的范圍,則服務器會返回此狀態(tài)代碼。
417 (未滿足期望值) 服務器未滿足"期望"請求標頭字段的要求.
// 5xx
500 (服務器內部錯誤) 服務器遇到錯誤,無法完成請求。
501 (尚未實施) 服務器不具備完成請求的功能。例如,服務器無法識別請求方法時可能會返回此代碼。
502 (錯誤網關) 服務器作為網關或代理,從上游服務器收到無效響應。
503 (服務不可用) 服務器目前無法使用(由于超載或停機維護)。通常,這只是暫時狀態(tài)。
504 (網關超時) 服務器作為網關或代理,但是沒有及時從上游服務器收到請求。
505 (HTTP 版本不受支持) 服務器不支持請求中所用的 HTTP 協(xié)議版本。
cgi php-cgi fast-cgi php-fpm
CGI:是 Web服務器 與 Web應用程序之間數據交換的一種協(xié)議
PHP-CGI:是 PHP (Web應用程序)對 Web服務器提供的CGI協(xié)議的接口程序
FastCGI:同 CGI,是一種通信協(xié)議,但比 CGI 在效率上做了一些優(yōu)化
PHP-FPM:是 PHP(Web應用程序)對 Web服務器 提供的 FastCGI 協(xié)議的接口程序,額外還提供了相對智能一些任務管理

未完。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30888.html

相關文章

  • 個人建議之PHP面試的準備

    摘要:個人也建議不要滿足于自己當下所知道的,多去拓展自己,多去學新的東西。作為一個面試者來說,知識點的記憶準備為的是更好的應對面試中技術面中問到的各種問題。 你好,是我琉憶——PHP程序員面試筆試系列圖書的作者。 隨著越來越多的人開始邁入PHP開發(fā)工程師的隊列,不管是一個PHP新手還是一個有一兩年開發(fā)經驗的PHPer都不得不去面對找工作前面試這件事。 我現在以個人對面試的經歷和見解來全面的對...

    macg0406 評論0 收藏0
  • 一個 16年畢業(yè)生所經歷的 PHP 面試

    摘要:正確做法是給加索引,還有聯合索引,并不能避免全表掃描。 前言:有收獲的話請加顆小星星,沒有收獲的話可以 反對 沒有幫助 舉報三連 有心的同學應該會看到我這個noteBook下面的其它知識,希望對你們有些許幫助。 本文地址 時間點:2017-11 一個16年畢業(yè)生所經歷的php面試 一、什么是面試 二、面試準備 1. 問:什么時候開始準備? 2. 問:怎么準備? 三、面試...

    dabai 評論0 收藏0
  • 活動:送兩本《PHP 程序員面試筆試真題庫》

    摘要:程序員面試筆試真題庫歷時一年,由機械工業(yè)出版社出版,在年月問世。現免費送出本程序員面試筆試真題庫,具體參與規(guī)則如下在本文下留言即可參與,并且一個用戶的多次留言只算作一次。月將會有一本程序員面試筆試算法出版,后續(xù)將會繼續(xù)在中搞贈書活動。 你好,是我琉憶。由于近期工作忙碌,沒有時間去更新PHP面試專欄。現在特此搞個抽獎活動送2本書給大家。給各位面試助力,盡快找到一份滿意的PHP工作。 《 ...

    劉玉平 評論0 收藏0
  • 2018 PHP 面試總結

    摘要:最近面試了不少公司,正好把記得的問題做個總結。抽象類的接口的區(qū)別,不在于編程實現,而在于程序設計模式的不同。一般來講,抽象用于不同的事物,而接口用于事物的行為。 最近面試了不少公司,正好把記得的問題做個總結。 本文 github 會持續(xù)更新 公眾號 搜索 蘇生不惑 或者掃二維碼關注,每周更新。 showImg(https://segmentfault.com/img/bVbsYyM?w...

    William_Sang 評論0 收藏0

發(fā)表評論

0條評論

trilever

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<