跳轉到內容

PHP 程式設計/資料結構

來自華夏公益教科書,開放的書,開放的世界

變數變數

[編輯 | 編輯原始碼]

PHP 具有一個稱為“變數變數”的遺留概念。這是一種更舊、更有限的程式設計概念,它出現在複合資料結構可用之前。由於 PHP 語言現在支援複合資料結構,變數變數的概念實質上已經過時

PHP 手冊指出

   "Sometimes it is convenient to be able to have variable variable names. That is, a variable name which can be set and used dynamically."

這種方法在歷史上被用在不支援複合資料結構的程式語言中。PHP 中沒有可以使用變數獲得的程式函式或演算法,而不能透過複合資料結構獲得。

此外,“變數變數”容易出錯,並且需要更多維護開銷。

資料結構是使用常規 PHP 變數表示複合實體的方式。

熟悉資料庫設計和資料庫實現的人知道資料庫規範化的概念。

PHP 中的資料結構表示一個類似的概念。在處理複雜概念並將它們表示在 PHP 中時,資料結構是一種將 PHP 變數規範化以一致且統一地表示覆雜概念的方式

PHP 本地結構

[編輯 | 編輯原始碼]
  • 字串是一種表示單個值(又稱標量)的結構
  • 陣列是一種表示值列表(又稱向量)的結構

字串示例

 $person_name = 'Alice';

陣列示例

 $person_names = Array( 0=> 'Alice', 1=> 'Bob', 2=> 'Charlie',  );
 $alice_info   = Array( 0=> 'Alice', 1=> 'Female', 2=> '26', 3=> 'alice@example.com',  );

PHP 複合結構

[編輯 | 編輯原始碼]
  • 簡單字典是一種表示無序的名稱-值對序列的結構。在原生 PHP 中,這是使用標準陣列以及字串作為索引來完成的。
  • 簡單序列是一種表示有序值序列的結構。在原生 PHP 中,這是使用標準陣列以及數字索引來完成的。
  • 簡單表(aod)是一個或多個簡單字典的有序序列,其中每個簡單字典例項具有匹配的名稱。
  • 簡單表(aoa)是一個或多個簡單序列的序列,其中每個簡單序列例項具有對應的索引。

方括號方法允許您透過直接設定值來進行設定。例如,要使 $foobar[1] = $foo,您只需執行以下操作

簡單字典示例

 $person_names = Array( 'person1'=> 'Alice', 'person2'=> 'Bob', 'person3'=> 'Charlie',  );
 $alice_info   = Array( 'first_name'=> 'Alice', 'sex'=> 'Female', 'age'=> '26', 'email'=> 'alice@example.com',  );

簡單字典示例

$user_profile = Array(
  main => Array(
    first_name  => "Archibald",
    last_name   => "Shaw",
    sex         => "male",
    age         => "33",    
  ),
  guardian => Array(
    first_name => "",
    last_name => "",
  ),
  children => Array(
    0 => Array(
      first_name => "Sally",
      last_name => "Shaw",
    ),
    1 => Array(
      first_name => "Scott",
      last_name => "Shaw",
    ),
  ),
  
);

註釋和參考文獻

[編輯 | 編輯原始碼]

[1]


華夏公益教科書