PHP5.4になってようやくarrayいらずの形式になりました。
short syntacx arrayです。新機能の配列周りのご紹介したいと思います。
ただまだまだ5.2が多いのかなと思う今日この頃。使っているレンタルサーバーにもまだ5.4導入されていませんねー。
5.3までといったところでしょうか?
ローカル開発環境で使って見ているところです。
PHP5.4の新機能の一部をご紹介しておきます。
スポンサーリンク
5.4新機能まとめ
・トレイト(単一継承言語でコードを再利用するための仕組みのひとつです。トレイトは単にいくつかの機能をまとめるためだけのものです。)
・Short Array Syntax(配列の短縮構文)
・Array Dereferencing(foo()[0])
・register_globals/safe mode/magic_quotes_gpcの廃止
・未設定の文字コードがUTF8
・short_open_tag の設定にかかわらず’=' が常に有効。
・セッションモジュールで、ファイルのアップロード状況を追跡。
・ビルトインサーバー(これでapacheいらず?)
・速度向上1~2割アップ、メモリ使用量も削減
・E_ALLにE_STRICTが含まれる。外す場合はE_ALL^E_STRICT
・htmlspecialcharsの引数が増えました。ENT_SUBSTITUTE/ENT_DISALLOWED/ENT_HTML401/ENT_XML1/
ENT_XHTML/ENT_HTML5⇒詳しくはコチラ
・新関数追加以下一部
hex2bin()/http_response_code()/get_declared_traits()/getimagesizefromstring()/stream_set_chunk_size()/socket_import_stream()/trait_exists()/header_register_callback()/class_uses()/session_status()/session_register_shutdown()
・非推奨の関数
mcrypt_generic_end()/mysql_list_dbs()
5.4のarray短縮形
5.4になってようやく”[]”だけで配列ができます。
[‘a’, ‘b’, ‘c’, ‘d’, ‘e’]こんなかんじで表記できます。
関数の配列も直接アクセスできます。
ArrayFunction()[3]のように。下記参照です。
/**
* 配列テスト
*/
class ArrayClass {
function getArray() {
// 配列の書き方が簡単になりました!!
return ['test' => 'hairetu', 'sample' => 'kantan', 'foo' => 'bar'];
}
function setArray(){
return ['java' => 'script', 'ruby' => 'rails', 'php' => '5.4', 'google' => 'python'];
}
function printChars(){
echo 'HelloWorld!';
}
}
$array = new ArrayClass();
var_dump($array->getArray());
/*
* array (size=3)
* 'test' => string 'hairetu' (length=7)
* 'sample' => string 'kantan' (length=6)
* 'foo' => string 'bar' (length=3)
*
*/
// 実はこんな出力方法も可能になりました!
echo $array->setArray()['php'];
// => 5.4
// newから直接メソットを呼び出ししちゃいます!
(new ArrayClass)->printChars();
// =>HelloWorld!
時間があればトレイトなども紹介できたらと思います。