普通PHP程式設計師筆試題3

2021-05-23 08:04:20 字數 3084 閱讀 2284

1.以下哪一句不會把 john 新增到 users 陣列?

$users = 'john';

成功把 john 新增到陣列 users。

array_add($users,』john』);

函式 array_add() 無定義。

array_push($users,『john』);

成功把 john 新增到陣列 users。

$users ||= 'john';

語法錯誤。

2.sort()、assort()、和 ksort() 有什麼分別?它們分別在什麼情況下使用?

sort()

根據陣列中元素的值,以英文本母順序排序,索引鍵會由 0 到 n-1 重新編號。主要是當陣列索引鍵的值無關疼癢時用來把陣列排序。

assort()

php 沒有 assort() 函式,所以可能是 asort() 的筆誤。

asort()

與 sort() 一樣把陣列的元素按英文本母順序來排列,不同的是所有索引鍵都獲得保留,特別適合替聯想陣列排序。

ksort()

根據陣列中索引鍵的值,以英文本母順序排序,特別適合用於希望把索引鍵排序的聯想陣列。3.以下的**會產生什麼?為什麼?

$num =10;

function multiply()

multiply();

echo $num;

由於函式 multiply() 沒有指定 $num 為全域變數(例如 global $num 或者 $_globals['num']),所以 $num 的值是 10。

4. reference 跟乙個正規的變數有什麼分別?如何 pass by reference?在什麼情況下我們需要這樣做?

reference 傳送的是變數的位址而非它的值,所以在函式中改變乙個變數的值時,整個應用都見到這個變數的新值。

乙個正規變數傳送給函式的是它的值,當函式改變這個變數的值時,只有這個函式才見到新值,應用的其他部分仍然見到舊值。

$myvariable = "its' value";

myfunction(&$myvariable); // 以 reference 傳送引數以 reference 傳送引數給函式,可以使函式改變了的變數,即使在函式結束後仍然保留新值。

5.些函式可以用來在現正執行的指令碼中插入函式庫?

對這道題目不同的理解會有不同的答案,我的第乙個想法是插入 php 函式庫不外乎 include()、include_once()、require()、require_once(),但細心再想,"函式庫"也應該包括 com 物件和 .net 函式庫,所以我們的答案也要分別包括 com_load 和 dotnet_load,下次有人提起"函式庫"的時候,別忘記這兩個函式。

6.foo() 與 @foo() 有什麼分別?

foo() 會執行這個函式,任何解譯錯誤、語法錯誤、執行錯誤都會在頁面上顯示出來。

@foo() 在執行這個函式時,會隱藏所有上述的錯誤訊息。

很多應用程式都使用 @mysql_connect() 和 @mysql_query 來隱藏 mysql 的錯誤訊息,我認為這是很嚴重的失誤,因為錯誤不該被隱藏,你必須妥善處理它們,可能的話解決它們。

7.你如何替 php 的應用程式除錯?

我並不常這樣做,我曾經試過很多不同的除錯工具,在 linux 系統中設定這些工具一點也不容易。不過以下我會介紹乙個近來頗受注目的除錯工具。

php - advanced php debugger 或稱 php - apd,第一步是執行以下的指令安裝:

pear install apd安裝後在你的指令碼的開頭位置加入以下的語句開始進行除錯:

apd_set_pprof_trace();執行完畢,開啟以下檔案來查閱執行日誌:

apd.dumpdir

你也可以使用 pprofp 來格式化日誌。

詳細的資料可以參閱 http://us.php.net/manual/en/ref.apd.php。

8."==="是什麼?試舉乙個"=="是真但"==="是假的例子。

"==="是給既可以送回布林值"假",也可以送回乙個不是布林值但卻可以賦與"假"值的函式,strpos() 和 strrpos() 便是其中兩個例子。

問題的第二部份有點困難,想乙個"=="是假,但是"==="是真的例子卻很容易,相反的例子卻很少。但我終於找到以下的例子:

if (strpos("abc", "a") == true)if (strpos("abc", "a") === true)

9.你會如何定義乙個沒有成員函式或特性的類別 myclass?

class myclass{}

10.你如何產生乙個 myclass 的物件?

$obj = new myclass();

11.在乙個類別內如何訪問這個類別的特性及變改它的值?

使用語句:$this->propertyname,例如:

class myclass}

12.include 和 include_once 有什麼分別?require 又如何?

三者都是用來在指令碼中插入其他檔案,視乎 url_allow_fopen 是否核准,這個檔案可以從系統內部或外部取得。但他們之間也有微細的分別:

include():這個函式容許你在指令碼中把同乙個檔案插入多次,若果檔案不存在,它會發出系統警告並繼續執行指令碼。

include_once():它跟 include() 的功能相似,正如它的名字所示,在指令碼的執行期間,有關檔案只會被插入一次。

require():跟 include() 差不多,它也是用來在指令碼中插入其他檔案,但若果檔案不存在,它會發出系統警告,這個警告會引致致命錯誤令指令碼中止執行

13.以下哪乙個函式可以把瀏覽器轉向到另乙個頁面?

redir()

這不是乙個 php 函式,會引致執行錯誤。

header()

這個是正確答案,header() 用來插入捲頭資料,可以用來使瀏覽器轉向到另乙個頁面,例如:

這不是乙個 php 函式,會引致執行錯誤。

redirect()

這不是乙個 php 函式,會引致執行錯誤。

程式設計師筆試題

signed char a 0xe0 unsigned int b a unsigned char c a 下面說法正確的是 a a 0 b 0 為真 b c a 為真 c b的16進製為0xffffffe0 d 都不對 答案 c 整形比較小於int的會擴寬的int再比較,而有符號數擴寬填充符號位,...

程式設計師筆試題 搜狐研發崗

一 判斷題 1.c語言中,int型別佔4個位元組。2.ipv4佔4個位元組,ipv6佔6個位元組。3.cpu占用的位址都是虛擬記憶體位址。還有六道記不起來了,都是一些很基礎的。二 不定項選擇題 1.c語言中,swith c c的型別可以是 byte,short,char,int 注意 long是不行...

騰訊 程式設計師 Java 筆試題目

可以在包頭加個字段表示資料的長度,驗證資料的長度值 或者將資料實體轉換為hashcode,利用一些資料驗證演算法 比如md5,是乙個將任意長度的資料字串轉化成短的固定長度的值的單向操作 vector 是執行緒安全的,arraylist不是執行緒安全的 在更多元素新增進來時會請求更大的空間 超過預定義...