Yahoo-PHP面试题3
2023-07-06
1. 在一個類別內如何存取這個類別的特性及變改它的值?
2. include 和 include_once 有什麼分別?require 又如何?
3. 以下哪一個函式可以把瀏覽器轉向到另一個頁面?
* redir()
* header()
* location()
* redirect()
4. 以下哪一個函式可以用來開啟檔案以便讀/寫?
* fget()
* file_open()
* fopen()
* open_file()
5. mysql_fetch_row() 和 mysql_fetch_array() 有什麼分別?
6. 下面的代碼用來做什麼?請解釋。
$date=’08/26/2003′;
print ereg_replace(”([0-9]+)/([0-9]+)/([0-9]+)”,”\\2/\\1/\\3″,$date);
以下是 Matt Wilkin 提供的解答:
1. 在一個類別內如何存取這個類別的特性及變改它的值?
使用語句:$this->propertyName,例如:
class myclass
private $propertyName;
public function __construct()
$this->propertyName = “value”;
2. include 和 include_once 有什麼分別?require 又如何?
三者都是用來在腳本中插入其他檔案,視乎 url_allow_fopen 是否核准,這個檔案可以從系統內部或外部取得。但他們之間也有微細的分別:
include():這個函式容許你在腳本中把同一個檔案插入多次,若果檔案不存在,它會發出系統警告並繼續執行腳本。
include_once():它跟 include() 的功能相似,正如它的名字所示,在腳本的執行期間,有關檔案只會被插入一次。
require():跟 include() 差不多,它也是用來在腳本中插入其他檔案,但若果檔案不存在,它會發出系統警告,這個警告會引致致命錯誤令腳本中止執行。
3. 以下哪一個函式可以把瀏覽器轉向到另一個頁面?
* redir()
這不是一個 PHP 函式,會引致執行錯誤。
* header()
這個是正確答案,header() 用來插入卷頭資料,可以用來使瀏覽器轉向到另一個頁面,例如:
header(”Location: http://www.search-this.com/”);
* location()
這不是一個 PHP 函式,會引致執行錯誤。
* redirect()
這不是一個 PHP 函式,會引致執行錯誤。
4. 以下哪一個函式可以用來開啟檔案以便讀/寫?
* fget()
這不是一個 PHP 函式,會引致執行錯誤。
* file_open()
這不是一個 PHP 函式,會引致執行錯誤。
* fopen()
這是正確答案,fopen() 可以用來開啟檔案以便讀/寫,事實上這個函式還有很多選項,詳細資料請參閱 php.net。
* open_file()
這不是一個 PHP 函式,會引致執行錯誤。
5. mysql_fetch_row() 和 mysql_fetch_array() 有什麼分別?
mysql_fetch_row() 把數據庫的一列儲存在一個以零為基數的陣列中,第一欄在陣列的索引 0,第二欄在索引 1,如此類推。mysql_fetch_assoc() 把數據庫的一列儲存在一個關聯陣列中,陣列的索引就是欄位名稱,例如我的數據庫查詢送回「first_name」、「last_name」、 「email」三個欄位,陣列的索引便是「first_name」、「last_name」和「email」。mysql_fetch_array() 可以同時送回 mysql_fetch_row() 和 mysql_fetch_assoc() 的值。
6. 下面的代碼用來做什麼?請解釋。
$date=’08/26/2003′;
print ereg_replace(”([0-9]+)/([0-9]+)/([0-9]+)”,”\\2/\\1/\\3″,$date);
這是把一個日期從 MM/DD/YYYY 的格式轉為 DD/MM/YYYY 格式。我的一個好朋友告訴我可以把這個正規表達式拆解為以下的語句,對於如此簡單的表示是來說其實無須拆解,純粹為了解說的方便:
// 對應一個或更多 0-9,後面緊隨一個斜號
$regExpression = “([0-9]+)/”;
// 應一個或更多 0-9,後面緊隨另一個斜號
$regExpression .= “([0-9]+)/”;
// 再次對應一個或更多 0-9
$regExpression .= “([0-9]+)”;
至於 \\2/\\1/\\3 則是用來對應括號,第一個括號對的是月份,第二個括號對應的是日期,第三個括號對應的是年份