轉載-php試題

來源:互聯網
上載者:User
1. 寫出下列代碼的結果:
$a="Hello World!";
$b=$a;
print("\$b=$b
");
print('$a=$a
');
?>

$b=Hello World!
$a=$a
//'\'是逃逸符,屏蔽緊跟在後面的單個特殊字元的特殊用法
//''單引號對,屏蔽包含在內的幾乎所有的特殊字元的特殊含義,除了本身
//另外,在命令列下調試這些代碼,
是不會作為換行輸出的~ 如果在browser,另當別論

2. 寫出下列代碼輸出結果:
$a="First";
$b=&$a;
$c=$a;
$a="Second";
print("$a,$b,$c
");
?>

Second,Second,First
//$b是$a的引用賦值,所以$a的變化就是$b的變化
//$c可以看作$a複製一次以後的副本,所以是不相干的兩個變數,因此,$a的改變不影響$c

3. 寫出下列代碼輸出結果:
$a=2;
$b="1.2SBC3";
$c="EFG";
$result1=$a.$b;
$result2=$a*$b;
$result3=$a*$c;
print("$result1,$result2,$result3
");
?>

21.2SBC3,2.4,0
//$result1是字串的串連,btw,如果這題是2.$b,那系統會報error
//$result2是數位乘法,php中會自動捨棄第一個不是數位字元開始後面的字元
//$result3是數位乘法,與2不同的是,$c中沒有任何數字型字元,因此整體被強行轉換為數值型,也就是0,然後再和$a=2相乘,最後結果就是0

4. 下列不正確的變數名是:
A. $_test B. $2abc C. $Var D. $%Var

b

5. 語句for($k=0;$k=1;$k++);和語句for($k=0;$k==1;$k++);執行的次數分別是:
A. 無限和0 B. 0和無限 C.都是無限 D. 都是0

A

/**
* 這裡要重點講一下這題,這裡選擇A應該是沒問題,人所皆知
* 問題在於,如果第一句話改一下,變成for($k=0;$k=0;$k++);,那麼迴圈體會被執行的次數呢?
*
* 答案是0
*
* 原因是for(expr A; expr B; expr C)在判斷是否要執行迴圈體時,我們關心的是運算式expr B的真值。
* 注意!$k=0這個運算式的值是0!而不是可能的複製成功返回的1!
* 所以,for迴圈的迴圈判斷條件為永假,自然就不會執行迴圈體了~~~
*
* :)
**/


6. php函數不支援的功能有:
A. 可變的函數名稱 B. 可變的參數個數 C. 通過引用傳遞參數
D. 通過指標傳遞參數 E. 實現遞迴函式

d

7. 下列對php中類的描述,不正確的是:
A. 支援單一繼承 B. 支援多繼承 C. 不支援建構函式 D.不支援解構函式
E.必須使用$this指標來引用成員變數

b 多繼承好像是要用到介面

8. 找出下列代碼中的錯誤並修正:
$a[0]=""Ryan;
$b["value"]=785.9;
$c["blue"][0]="Ada";
print("$a[0],$b["value"],$c["blue"][0]
");
?>

$a[0]="Ryan";
$b["value"]=785.9;
$c["blue"][0]="Ada";
print("$a[0]"."$b[value]"."{$c[blue][0]}"."
");
?>

//引號沒什麼好說的
//還有關鍵是最後一行的$c[blue][0],如果不用花括弧括起來,那麼系統會自動先變數替換$c[blue],問題是這個值不存在,所以,替換完畢後的xxxx[0]也就沒有了,所以會報錯。這就是所謂的變數數組


9. 請按照由高到低的順序寫出下列操作符的優先順序:
and,=,>,+,~

~ + > = and 我猜的

10. 試述isset()和empty()的區別


isset()
測試變數是否存在

empty()
測試變數是否為空白

在php這樣的對變數定義不嚴格的語言中
如果一個變數從沒有聲明過,那麼isset==false|empty==true
如果一個變數已聲明,但賦值為NULL,那麼和前一種情況一樣
如果一個變數已聲明,但賦值為'',那麼isset==true|empty==true
如果一個變數已聲明,且正常賦值,那麼isset==true|empty==false

example as follow:
$b = NULL;
$c = '';
$d = 'str';
echo isset($a)."a\n";
echo empty($a)."b\n";
echo isset($b)."c\n";
echo empty($b)."d\n";
echo isset($c)."e\n";
echo empty($c)."f\n";
echo isset($d)."g\n";
echo empty($d)."h\n";
?>

11. 請用儘可能少的語句實現對輸入Email地址進行驗證的功能.

eregi('^[_a-z0-9]+(\.[_a-z0-9-]+)*@[a-z0-9]+(\.[a-z0-9-]+)*$',$emailaddress)

12. 寫一演算法,將下列數組按升序排序,並寫出排序演算法名稱:
$arrVar=array(64,29,1,43,30,9,39,75,4,11)

冒泡排序,過程略

13. 寫一段程式,將文字檔中的每一個單詞的首寫字母轉換成大寫,並儲存回原檔案.
提示:將串中的單詞首字母轉換成大寫的函數: string ucwords(string str)



14. 請寫出php訪問MYSQL資料庫的幾種方式,並做簡要介紹.

15. 請寫出PHPSession的實現方法;介紹你認為最好的實現方法,並說明理由.
提示:SessionID的傳遞方式,Session變數的儲存方法等.

16. PHP程式會有什麼漏洞?

我就是最大的漏洞……


不知道對不對~~ 呵呵~~ 發現概念性的東西還是挺糾纏不清的~~
字多的慢慢再寫~~~:)
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.