記一次PHP面試題

1、有3個(gè)數(shù)字,以最少的代碼獲取最大值

注:這個(gè)問題主要考察的不是排序算法,而是對(duì)PHP基礎(chǔ)的三目表達(dá)式的使用,以少量代碼實(shí)現(xiàn)功能(相似的php中的短路寫法也是這種情況($a>$b? &&? $a=100 ))。

答:

function maxNum($a,$b,$c){

? ? return $a > $b ? ($a > $c ? $a : $c ) : ($b > $c ? $b : $c);

}

echo maxNum(28,78,26);//78


2、PHP中有幾個(gè)魔術(shù)變量,__LINE__是什么意思?

答:7個(gè);__LINE__指的是當(dāng)前行號(hào)。

FILE :文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。

DIR:文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。

FUNCTION:?常量返回該函數(shù)被定義時(shí)的名字

CLASS:常量返回該類被定義時(shí)的名字(區(qū)分大小寫)。

METHOD:類的方法名(PHP 5.0.0 新加)。返回該方法被定義時(shí)的名字(區(qū)分大小寫)。

NAMESPACE:當(dāng)前命名空間的名稱(區(qū)分大小寫)。此常量是在編譯時(shí)定義的(PHP 5.3.0 新增)。


3、cookie禁用后,session可用嗎?

答:可用。

1、PHP可以通過配置php.ini中的session.use_trans_sid?=?1,或者編譯時(shí)打開打開了“--enable-trans-sid”選項(xiàng),讓PHP自動(dòng)跨頁傳遞Session?ID。

2.?手動(dòng)通過URL傳值、隱藏表單傳遞Session?ID。

3.?用文件、數(shù)據(jù)庫等形式保存Session?ID,在跨頁過程中手動(dòng)調(diào)用。


4、填寫下面代碼的輸出結(jié)果

class foo {

? ? var $bar = 'I am bar.';

? ? var $arr = array('I am A.', 'I am B.', 'I am C.');

? ? var $r? = 'I am r.';

}

$foo = new foo();

$bar = 'bar';

$baz = array('foo', 'bar', 'baz', 'quux');

echo $foo->$bar . "\n";? //$bar 的值是 bar ,$foo->bar 的值是 I am bar

echo $foo->$baz[1] . "\n"; //I am bar.

$start = 'b';$end? = 'ar';

echo $foo->{$start . $end} . "\n";//$start 的值是'b' ,$end 的值是'ar' ,{$start . $end}的值是 'bar',$foo->{$start . $end} 的值是'I am bar.'

$arr = 'arr';

echo $foo->$arr[1] . "\n";// $arr 的值是 'arr',這里‘a(chǎn)rr’作為字符數(shù)組解釋 ,$arr[1] 的值是 r $foo->$arr[1]的值是 'I am r.'。

echo $foo->{$arr}[1] . "\n";// 大括號(hào)界定了界限,再解釋時(shí)將'arr'作為整體解釋,而不再作為字符數(shù)組


5、GET和POST最大傳輸數(shù)據(jù)長度的大小是多少?

答:實(shí)際上,http協(xié)議中,GET和POST的傳輸長度都是沒限制的。通常說的最大傳輸數(shù)據(jù)量這些限制是跟瀏覽器和服務(wù)器有關(guān)。

????????GET請(qǐng)求是以URL傳輸數(shù)據(jù)的,因此傳輸?shù)淖畲笾凳歉鶸RL的最大值相關(guān)的(下面會(huì)列出各大瀏覽器和服務(wù)器的限制)。如果超過服務(wù)器長度限制,可能會(huì)拒絕請(qǐng)求或發(fā)生不完整的請(qǐng)求。

? ??POST請(qǐng)求的所能傳遞的數(shù)據(jù)量大小取決于服務(wù)器的設(shè)置和內(nèi)存大小。例如PHP中,POST請(qǐng)求的默認(rèn)最大值為2M,可以通過php.ini修改post_max_size這個(gè)值。如果上傳文件,還需要修改upload_max_filesize。

瀏覽器對(duì)GET限制長度的大小

1、IE

IE瀏覽器(Microsoft Internet Explorer) 對(duì)url長度限制是2083(2K+53),超過這個(gè)限制,則自動(dòng)截?cái)啵ㄈ羰莊orm提交則提交按鈕不起作用)。

2、firefox

firefox(火狐瀏覽器)的url長度限制為 65 536(這個(gè)數(shù)字是2的16次方,16位進(jìn)制中的最大值)字符,但實(shí)際上有效的URL最大長度不少于100,000個(gè)字符。

3、chrome

chrome(谷歌)的url長度限制超過8182個(gè)字符返回本文開頭時(shí)列出的錯(cuò)誤。

4、Safari

Safari的url長度限制至少為 80 000 字符。

5、Opera

Opera 瀏覽器的url長度限制為190 000 字符。Opera 9 地址欄中輸入190 000字符時(shí)依然能正常編輯。

服務(wù)器對(duì)GET限制長度的大小

1、Apache

Apache能接受url長度限制為8 192 (8k)字符

2、IIS

Microsoft Internet Information Server(IIS)能接受url長度限制為16 384個(gè)字符。

這個(gè)是可以通過修改的(IIS7)。

3、Perl HTTP::Daemon

Perl HTTP::Daemon 至少可以接受url長度限制為8000字符。Perl HTTP::Daemon中限制HTTP request headers的總長度不超過16 384字節(jié)(不包括post,file uploads等)。但當(dāng)url超過8000字符時(shí)會(huì)返回413錯(cuò)誤。

這個(gè)限制可以被修改,在Daemon.pm查找16×1024并更改成更大的值。

4、ngnix

可以通過修改配置來改變url請(qǐng)求串的url長度限制。

client_header_buffer_size 默認(rèn)值:client_header_buffer_size 1k

large_client_header_buffers默認(rèn)值 :large_client_header_buffers 4 4k/8k

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容