亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

PHP面試

trilever / 1046人閱讀

摘要:服務(wù)器返回此響應(yīng)對(duì)或請(qǐng)求的響應(yīng)時(shí),會(huì)自動(dòng)將請(qǐng)求者轉(zhuǎn)到新位置。未授權(quán)請(qǐng)求要求身份驗(yàn)證。方法禁用禁用請(qǐng)求中指定的方法。請(qǐng)求范圍不符合要求如果頁(yè)面無(wú)法提供請(qǐng)求的范圍,則服務(wù)器會(huì)返回此狀態(tài)代碼。服務(wù)不可用服務(wù)器目前無(wú)法使用由于超載或停機(jī)維護(hù)。

PHP基礎(chǔ)篇 打印函數(shù)

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

echo 輸出一個(gè)或多個(gè)字符串,無(wú)返回值
print 僅支持一個(gè)參數(shù),并總是返回 1
print_r 顯示一個(gè)變量的信息,有返回值
var_dump 打印一個(gè)或多個(gè)表達(dá)式的結(jié)構(gòu)信息,包括表達(dá)式的類型與值,無(wú)返回值
printf 輸出格式化字符串,返回輸出字符串的長(zhǎng)度
運(yùn)算符
遞增/遞減運(yùn)算符不影響布爾值,遞減 NULL 值也沒(méi)有效果,但是遞增 NULL 的結(jié)果是 1`
// 題1:寫(xiě)出輸出結(jié)果
$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

請(qǐng)?jiān)诒砀裼覀?cè)寫(xiě)出執(zhí)行每一行代碼后每個(gè)變量的值

$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,
類型轉(zhuǎn)換 進(jìn)制轉(zhuǎn)換
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...,用遞歸實(shí)現(xiàn)求第n位數(shù)字

// 遞歸
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;
}

用多個(gè)函數(shù)實(shí)現(xiàn)獲取文件擴(kuò)展名

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

從PHP 5.6.x 到 PHP 7.0.x

標(biāo)量類型聲明,返回值類型聲明
null合并運(yùn)算符(??),太空船操作符(<=>)
通過(guò) define() 定義常量數(shù)組
匿名類--支持通過(guò)new class 來(lái)實(shí)例化一個(gè)匿名類
...

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

面向?qū)ο?/b>
new static() 和 new self() 的區(qū)別
如何獲取類的默認(rèn)屬性
魔術(shù)方法有哪些
實(shí)現(xiàn)迭代器和迭代
重寫(xiě)父類的 protected 方法有什么限制
類的自動(dòng)加載

如何實(shí)現(xiàn)類的自動(dòng)加載

spl_autoload_register(function ($class_name) {
    $file = "./" . $class_name . ".php";
    if (file_exists($file)) require_once $file;
});
魔術(shù)方法
__toString __invoke
// 實(shí)現(xiàn)如下函數(shù)(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)
設(shè)計(jì)模式
單例模式
工廠模式
觀察者模式
注冊(cè)模式
適配器模式
如何理解MVC
MVC設(shè)計(jì)模式(Model模型-View視圖-Controller控制器)一種軟件架構(gòu)模式
控制器負(fù)責(zé)處理用戶的請(qǐng)求(包括數(shù)據(jù)模型的調(diào)用以及對(duì)表現(xiàn)層的輸出控制)
模型負(fù)責(zé)處理具體的業(yè)務(wù)邏輯
視圖負(fù)責(zé)展示結(jié)果給用戶

深層次理解MVC

數(shù)據(jù)庫(kù) MySQL存儲(chǔ)引擎
MySQL存儲(chǔ)引擎有哪些?
MyISAN與InnoDB的區(qū)別?

MySQL索引

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

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

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

redis的數(shù)據(jù)類型

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

如何提高緩存命中率

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

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

redis一致性hash

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

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

未完。

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/30888.html

相關(guān)文章

  • 個(gè)人建議之PHP面試的準(zhǔn)備

    摘要:個(gè)人也建議不要滿足于自己當(dāng)下所知道的,多去拓展自己,多去學(xué)新的東西。作為一個(gè)面試者來(lái)說(shuō),知識(shí)點(diǎn)的記憶準(zhǔn)備為的是更好的應(yīng)對(duì)面試中技術(shù)面中問(wèn)到的各種問(wèn)題。 你好,是我琉憶——PHP程序員面試筆試系列圖書(shū)的作者。 隨著越來(lái)越多的人開(kāi)始邁入PHP開(kāi)發(fā)工程師的隊(duì)列,不管是一個(gè)PHP新手還是一個(gè)有一兩年開(kāi)發(fā)經(jīng)驗(yàn)的PHPer都不得不去面對(duì)找工作前面試這件事。 我現(xiàn)在以個(gè)人對(duì)面試的經(jīng)歷和見(jiàn)解來(lái)全面的對(duì)...

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

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

    dabai 評(píng)論0 收藏0
  • 活動(dòng):送兩本《PHP 程序員面試筆試真題庫(kù)》

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

    劉玉平 評(píng)論0 收藏0
  • 2018 PHP 面試總結(jié)

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

    William_Sang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<