-
ヒアドキュメントは変数がパースされる. Nowdocはされない. const属性の定数の代入にNowdocを使える.
-
unset()で変数の割当を解除すると、それ以後その変数を参照したとき "未定義の変数"としてエラー(Notice)が発生するのに対し、nullの代入された変数は 変数としては定義しているものとして扱われる.
-
(float)'15.33foo'
->15.33
が返る -
$some_variable instanceof ClassName
-
条件式 ?: 式1 真のとき条件式の評価値、偽のとき式1の評価値が返る.
`` = shell_exec()
-
配列への要素追加:
$hoge[] = 10;
-
配列の演算
+
: 結合(同じキーの要素は上書きしない)==
: キー/値ペアが等しい場合真===
: キー/値ペアが等しく、並び順が等しく、データ型が等しい場合真!=, <>
: 同等でない場合真!==
: 同一でない場合真 -
foreach内で要素の参照. 推奨されない.
foreach ($array as &$value) {
$value = 3; // 変更を受ける
}
unset($value); // ブロックスコープが無いので.
- 関数名の前に&をつけると参照を返せる. 返り値の受け取りには&が必要
<?php
function &add_one(&$value)
{
$value += 1;
return $value;
}
$a = 10;
$b =& add_one($a);
$b += 1;
?>
-
関数の引数にはデフォルト値を設定できる. 引数を省略できるようになる.
-
デフォルト値を設定する引数は後ろに書く.
-
関数の引数にtype hinting.
-
call_user_func, call_user_func_array
-
無名関数. call backの指定などで使用.
-
関数のクロージャー, 変数の名前解決
-
定義済み関数名の取得
get_defined_functions();
組み込み関数とユーザー定義関数のリストが取得できる. -
new演算子でインスタンス化したクラスを変数に代入すると、参照が代入される.
-
参照を=で代入すると参照が代入される.
-
複製を作る場合は
clone
をつかう. -
オーバーライドするメソッドの引数に、デフォルト値を持つ引数を追加することは許される.
-
final修飾子のあるメソッドはオーバーライドできない.
-
抽象クラスには、通常のメソッドを定義することもできる(abstractキーワードを付けない).
-
instanceof演算子.
-
14個のマジックメソッド
-
遅延静的束縛
-
__autoload($Classname) :
-
呼びだそうとしたクラスの定義が存在しない時に呼ばれる.
-
spl_autoload_register()
-
名前空間
-
header()関数でLocationを設定して再投稿防止.
-
pdoのexecuteの引数にプレースホルダと値の連想配列を指定することができる.
-
セッションハイジャックへの対処
- ログイン直後にsession_regenerate()を行う。
- Accept-Charset, Accept-Language, User-Agentなどから乱数を生成し、セッションに保存しておき、チェックする.