2024 年 PHP 日本研討會

PHP 版本 3

目錄

  1. 簡介
  2. 設定指令
  3. 已變更的行為
  4. 其他
  5. 遷移
  6. 偵錯器
  7. 內部

簡介

PHP 3 文件已從 PHP 手冊中移除,並放置在此處供歷史參考。 雖然很有可能遺漏一些內容,但已盡力保留所有文字。 最後的 PHP 3 版本 (3.0.18) 發佈於 2000 年 10 月 20 日。

請參閱 PHP 博物館以下載,並閱讀歷史以取得更多關於 PHP 3 的資訊。

設定指令

大多數指令都以 php3_ 而不是 php_ 作為開頭。 本文件中未提及這些差異。

已變更

FTP 設定選項已從 --with-ftp 變更為 --enable-ftp

E_ALL 的值為 63。

asp_tags 指令是在 PHP 3.0.4 中加入的。

E_* 常數在 php3.ini 中沒有意義,但數值有意義。

已移除

--with-imsp[=DIR] 包含 IMSP 支援(DIR 是 IMSP 的 include 目錄和 libimsp.a 目錄)。

--with-mck[=DIR] 包含 Cybercash MCK 支援。DIR 是 cybercash mck 的建置目錄,預設為 /usr/src/mck-3.2.0.3-linux

--with-mod-dav=DIR 透過 Apache 的 mod_dav 包含 DAV 支援,DIR 是 mod_dav 的安裝目錄(僅限 Apache 模組版本)。

如果 sybase.compatability_mode 指令開啟,這將導致 PHP 根據其 Sybase 類型自動為結果分配類型,而不是將它們全部視為字串。

行為變更

傳回值

unset() 傳回 1。

在同一個腳本中多次呼叫 setcookie() 將會以相反的順序執行。並且在嘗試刪除一個 cookie 後插入另一個 cookie 時,將插入操作放在刪除操作之前。

eval() 不傳回任何值。

函式參數

gettype() 有一個「使用者函式」的傳回值。

htmlspecialchars() 在 PHP 3.0.17 中加入了第二個參數。

error_log() 的第二個參數,message,會通過除錯器。

empty() 將 "0" 視為非空值,例如可能來自 HTML 表單的值。

其他

變數一律以值的方式賦值,因為沒有參考。

在 HTML 表單中使用陣列僅限於單維陣列。

在單引號字串中跳脫字元時,會產生 E_NOTICE 等級的錯誤。

物件在序列化和反序列化的過程中會失去其類別關聯。

函式必須在使用前定義。換句話說,由上而下。

不支援可變數量的參數。

Return 只能在函式區塊內使用。

其他

PCRE 修飾詞無法使用。

is_uploaded_file() 從 PHP 3.0.16 開始存在。

BC Math 預設為啟用,--disable-bcmath 可將其停用。

register_globals 的行為一律開啟,因為該指令不存在。

short_tags() 函式可用於啟用簡短標籤 (<?)。

CGI 建置有一個 'make bench' 工具,用於對建置進行基準測試。它可能需要超過 30 秒才能執行,因此請務必允許適當的時間限制。

不支援 SAPI。

允許使用 HTTP PUT 方法來儲存檔案,其處理方式與 POST 方法的檔案儲存類似。$PHP_PUT_FILENAME 保存所建立的暫存檔案的位置,該檔案必須在請求期間移動,否則將被刪除。

ODBC 預設為啟用,要停用請使用 --disable-unified-odbc

GD 預設為啟用,要停用請使用 --without-gd

在 Apache 中安裝 PHP 3

   AddModule mod_php3.c
   LoadModule php3_module modules/libphp3.so
   AddType application/x-httpd-php3 .php3
  

SESAM 擴充功能是 PHP 3 特有的,已被移除。

遷移

有一些關於 PHP 3 的遷移特定文件,但由於它們的大小和結構,它們沒有被添加到本文檔中。

偵錯器

與 PHP 3 標準配備的除錯器相關的資訊未添加到本文檔中。

內部

與 PHP 3 內部工作原理相關的資訊,這些資訊通常用於建立擴充功能,未添加到本文檔中。

To Top