PHP筆試題(11道題)詳解

2021-09-07 19:40:16 字數 3083 閱讀 3664

題目一

<?php

echo -10%3;

?>

答案:-1。

考查:優先順序。

因為-的優先順序比%求餘的優先順序低,

也就是-(10%3)。

2 題目二:

print (int)pow(2,32);

答案:0

3題目三:

<?php

$a = '123';

?>

<?php

echo include('file1.php');

?>

答案:1.

考查:返回值。

因include()也是乙個函式,有返回值。

在成功時返回1,失敗時返回錯誤資訊。

如果被包含的檔案有return,則inculde()

成功時返回該檔案的返回值。

4題目四:

<?php

$count = 5;

function get_count()

++$count;

get_count();

echo get_count();

?>

答案:1.

考查:static和++。

因static $count,所以只在第一次

呼叫get_count的時候對$count賦值

為0,第二次再進來這個函式,則不會

第二次賦值。其次就是return $count++

和return ++$count了,前者先返回,

後者先++再返回。

5題目五:

<?php

$arr= array(0 =>1,'aa' =>2,3,4);

foreach($arr as $key => $val)

?>

答案:5534.

考查:型別轉換。

因遍歷陣列第一次的時候,$key和aa的比

較實際就是0和aa的比較,乙個是int乙個

是string,這個時候會轉換型別,將字元

串轉換為數字再與數字比較。所以0=='aa'

就是0==0,所以為true,也就是輸出5。

雖然php是若型別語言,但是人家也有類

型的好嗎。

6題目六:

<?php

echo count (false);

$a = count ("567")  + count(null)

+ count(false);

echo $a;

?>

答案:2.

考查:count的用法。

因count()的官方解釋「if the parameter

is not an array or not an object 

with implemented countable 

inte***ce, 1 will be returned.」.

意思是說,如果不是陣列或者物件的其他

型別,返回1.那麼這個值應該就是1+0+1

了(boolen人家也是乙個型別,雖然是

討厭的false)。null的意思是沒有值,

難道在計數函式中還能有1?

7 題目七:

<?php

$arr = array(1,2,3);

foreach($arr as &$val)

$val = 0;

print(join('',$arr));

?>

答案:330。

考查:++和&。

因foreach結束後的陣列應該是array(3,3,7);最後給第三個元素賦值為0,所以就是330了。其中注意的是&,如果有&則是對原變數操作,如果沒有,則是先生成乙個新變數,然後給這個變數複製,最後操作的是這個新變數。

8題目八:

<?php

echo intval((0.1+0.7)*10);

?>

答案:7。

考查:浮點數的概念。

因0.1+0.7=0.8    0.8*10=8  所以轉換

成整數後還是8?錯!因為0.1+0.7=0.8是

浮點數,0.8*10在數學計算中是正整數8,

可是在計算機中它仍然是浮點數8,什麼叫

浮點數8?每乙個看起來像整數的浮點數,

其實都不是整數,比如這個8,它其實只是

7.9999迴圈,無限接近於8,轉換成整數會

捨棄小數部分,就是7嘍。

9題目九:

<?php

ini_set('display_errors',0);

$arr = array(1=>1,3=>3);

$i = 2;

$a = 'test' . isset($arr[$i]) ? 

$arr[$i] : $i;

請問$a的值是什麼?

a、test b、null c、2 d、test2

?>

答案:b。

考查:優先順序。

因「."的優先順序高於三元運算子"?:"。所以程

序其實報錯了。會說$arr的索引2不存在。

10題目十:

<?php

$a = 3;

$b = 5;

if($a = 5 || $b = 7)

echo $a . " " . $b;

?>

a、6 8  b、6 6  c、2 6  d、1 6  e、4 6

答案:d。

考查:優先順序,基礎概念,++。

因「="的優先順序低於「||」,所以先邏輯判斷再賦值。

也就是($a = (5 || $b = 7))。所以,最後

其實給a賦值了,$a等於1.

11題目十一:

<?php

$x = 2;

echo $x == 2 ? '我' : $x == 1 ? '你' 

: '它';

?>

輸出的結果是()

a、我b、你

c、它d、syntax error

答案:b。

考查:優先順序。

因「=="的優先順序高於「?:」。我已經不想說為什麼了,整理一下這種東西,我感覺要瘋了,除了筆試題外估計也不會遇到了吧。

一道php筆試題

最近用的一道筆試題,推薦給大家。請找出下面 中的問題,修復並優化。1 2 3 4 5 6 7 8 9 10 11 12 13 14 批量註冊使用者,每次 100個。註冊新使用者,要求使用者名稱與email不能與以前的重複。mysqli newmysqli host,user,pass for i 0...

一道筆試題

看到一道筆試題,跟自己想的有點出入,就跑了下,看了看原因。我稍微改了下 include int main int argc,char argv 輸出結果 c 5 d 245 press any key to continue vc6.0 debug下的彙編 5 unsigned char a 0xa...

一道筆試題

上次去筆試的時候,有一道題,怎麼也沒做出來,當時也是很緊張,有些思路,但卻沒有做出來。有四個人要過乙個獨木橋,因為天比較黑,而且橋只能允許兩個人同時通過,並且他們只有乙個手電筒。四個人單獨同時橋的時間是1,2,5,8分鐘。問最短的時間是多少?當時我的答案 1和8,1回來,1 5,1回來,1 2 8 ...