1. Introduction

PHP 支援十種原始型別(primitive types):

Scalar types:

  • boolean
  • integer
  • float
  • point numbers
  • string

Compound types:

  • array
  • object
  • callable
  • iterable

Special types:

  • resource
  • NULL

2. Booleans

  • 將值轉換為boolean的方式 → (bool) or (boolean) cast
  • 下面這些當轉換為 boolean 時都會被視為False

▹boolean false itself.

▹integer 0

▹float 0

▹empty string and string “0”

▹array with zero element === null ⇐ return false

▹null NULL

3. Integers

  • 將值轉換為Integer的方式 → (int) or (integer) cast or intval() function
  • 若欲取整數 → round($var, $precision=0) or floor()

4. floating point numbers

5. String

  • 將值轉換為String的方式 → (string) cast or strval() function
  • 一個字串可以用下列4 種方式表示:

▹ 單引號(Single quote)

▹ 雙引號(Double quote)

Heredoc(少用)

Nowdoc(少用)

  • 變數覆值(Variable Parsing) and 跳脫字元(Escape Sequence) only work on 雙引號 and Heredoc.
  • String index: using [index]

6. Array

  • Indexed Array 比較像array(連續記憶體),拿來做 iteration 時,速度會比較快。
  • Associative Array 就是hash table ,用key 去抓取資料,因為資料不連續,所以 iteration 時速度會比較慢。
  • Key → Integer or String (其他資料型態會自動轉成整數或字串)
  • Value → Any type (因此Array當中可以有Array)
  • Accessing array element → array[key]
  • foreach 語法結構提供遍歷Array的簡單方式
  • 若Key一樣,則舊的Value值會被覆寫掉,因此留下的是最後一個Value,在實務上這也是個坑 ,當你今天要create 一個associative array 當你建立了重複的key 就會把前面的洗掉。

7. Object

  • To create a object, use new statement to instantiate a class.

8. NULL

  • 表示一個變數沒有值
  • 在下列情况下一個變數會被認為是 NULL:

▹被賦值為 NULL

▹尚未被賦值

unset()