/virtual/uft/public_html/unlimited-fairytales.com/PhpSamples/Php01/php01-syntax01-statements.php

1. 変数、配列、可変変数、定数

string(3) "dic"
array(3) {
  ["foo"]=>
  string(5) "Alice"
  ["bar"]=>
  string(3) "Bob"
  ["baz"]=>
  string(5) "Carol"
}
array(3) {
  ["foo"]=>
  string(5) "Alice"
  ["bar"]=>
  string(3) "Bob"
  ["baz"]=>
  string(5) "Carol"
}
string(28) "定数には$は付けない"

2. 文字列リテラル3種

'は変数展開しない:{$val}
"は変数展開される:変数の中身
これはヒアドキュメントです
お作法として、ヒアドキュメントIDは必ず'か"で囲んだほうが分かりやすいです。:変数の中身

3. 厳密な比較演算

string(1) "2"
int(2)
bool(true)
bool(false)

4. 制御文

ifブロックに来ました。
elseブロックに来ました。
count up!
count up!
count up!
count up!
count up!
key=foo, val=Alice
key=bar, val=Bob
key=baz, val=Carol

5. 関数、配列、インスタンス

配列は各要素で比較される(初期状態と最終状態の$ary1 === $ary3 が true)
配列からオブジェクトへのキャストは生成される($obj1 === $obj2 が false)
最初の状態
$ary1 === $ary2 : bool(true)
$ary1 === $ary3 : bool(true)
$ary1 === $obj1 : bool(false)
$obj1 === $obj2 : bool(false)
$obj1 === $obj3 : bool(true)
ary1, obj1 にkey3を追加
$ary1 === $ary2 : bool(false)
$ary1 === $ary3 : bool(false)
$ary1 === $obj1 : bool(false)
$obj1 === $obj2 : bool(false)
$obj1 === $obj3 : bool(true)
ary3 にkey3を追加
$ary1 === $ary2 : bool(false)
$ary1 === $ary3 : bool(true)
$ary1 === $obj1 : bool(false)
$obj1 === $obj2 : bool(false)
$obj1 === $obj3 : bool(true)

6. 主な配列操作

array(3) {
  ["foo"]=>
  string(5) "Alice"
  ["bar"]=>
  string(3) "Bob"
  ["baz"]=>
  string(5) "Carol"
}
in_array("Alice", $dic)       : 1
array_key_exists("baz", $dic) : 1
count($dic)                   : 3