從一道php面試題說起

2021-09-01 01:55:42 字數 1388 閱讀 8122

面試題目:

setcookie(『name』,'test');

echo $_cookies['name'];

請說出程式結果(能說出第一次與第二次的區別者加分)

本來一開始我認為不就是設定乙個cookie,然後讀出來的問題,但是被那個後面的提示搞迷惑了從來沒有想過這樣的問題。面試的時候也沒有想出答案,後來在面試官的指點下搞清楚了。

答案:

1.第一次為空

2.第二次輸出 test

解釋:cookies是儲存在客戶端的,伺服器要想獲得cookie必須是客戶端通過http的header傳遞給伺服器。

第一次:首先設定乙個cookie值,然後讀取cookie值(由於第一次客戶端沒有傳遞cookie給伺服器),沒有cookie值

第二次:cookie值傳遞給了伺服器,就讀出來了

在面試官的指點後,我才想起來了之前有專案的bug與這個有關,但是換個方法避開了。

碰巧這幾天看php手冊看到了setcookie中有這樣一段**:

<?php

// set the cookies

setcookie("cookie[three]", "cookiethree");

setcookie("cookie[two]", "cookietwo");

setcookie("cookie[one]", "cookieone");

// after the page reloads, print them out

if (isset($_cookie['cookie']))

}?>

亮點// after the page reloads, print them out

我想這個提示太低調了,我想我們很多人在在除錯

setcookie(『name』,'test');

echo $_cookies['name'];

第一次沒有值,然後重新整理一下出來了,就以為沒問題了,就不想這個問題是為什麼。

都說手冊很重要,但是手冊這麼多東西,你能保證你看手冊的時候就一定會注意到這個地方的**。於是我很好奇,面試官是在什麼情景下遇到這個問題的,於是問了一下面試官,得到了以下回答:

呵呵,認證 應該算 所有web專案的 最開始,也是最重要的乙個環節。 

所以,對認證這塊,需要很熟悉。

這個問題 主要是考 cookie 是什麼時候被服務端發往瀏覽器, 瀏覽器又是什麼時候傳遞給伺服器的。

確實如果從這個角度出發,就有可能發現這個問題。然後面試官也說,他也才知道手冊上有這個東西。

最後確實手冊很重要,但是也太低調了,如果你發現手冊中類似如此低調的問題,請分享一下,我也準備收集一下手冊中低調的問題。

從一道Python面試題說起(大神勿入)

1 list 5 2print list num 5 5num 25str str 5str strstrstrstrstr 1 list 5 10,20 10,20 10,20 10,20 10,20 30 上面第1題和第4題大家都沒問題,可能會有人對第2題和第3題提出疑問,明明改的是list裡的...

從 Google 的一道面試題說起

內容選自 程式設計師的數學基礎課 n2004 年,在矽谷的交通動脈 101 公路上出現了一塊巨大的廣告牌,上面是道數學題 com。這裡的 e 是數學常數,自然對數的底數,無限不迴圈小數。n n其實,不止是 google,很多大公司在招人時都會優先考慮數學專業的畢業生,因為,數學基礎好,程式設計就更容...

從 Google 的一道面試題說起

內容選自 程式設計師的數學基礎課 2004 年,在矽谷的交通動脈 101 公路上出現了一塊巨大的廣告牌,上面是道數學題 com。這裡的 e 是數學常數,自然對數的底數,無限不迴圈小數。其實,不止是 google,很多大公司在招人時都會優先考慮數學專業的畢業生,因為,數學基礎好,程式設計就更容易上手。...