Skip to content

Instantly share code, notes, and snippets.

@shu-yusa
Last active June 30, 2018 13:25
Show Gist options
  • Save shu-yusa/e1a5d88496a0f1f2276d80790a8752f9 to your computer and use it in GitHub Desktop.
Save shu-yusa/e1a5d88496a0f1f2276d80790a8752f9 to your computer and use it in GitHub Desktop.
  • ヒアドキュメントは変数がパースされる. 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の引数にプレースホルダと値の連想配列を指定することができる.

  • セッションハイジャックへの対処

  1. ログイン直後にsession_regenerate()を行う。
  2. Accept-Charset, Accept-Language, User-Agentなどから乱数を生成し、セッションに保存しておき、チェックする.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment