@blog.justoneplanet.info

日々勉強

PHP Array Extract and Compact

たまに見かけるがイマイチ意味が理解できない2つの関数を解説する。

■extract関数

マニュアルの記載

配列からシンボルテーブルに変数をインポートする

正直なところ意味が良く分からない。簡単に言うと、配列からローカル変数を生成する。但し、既に同一変数名が存在している場合は上書きされるので注意が必要。

<?php
$ary = array(
    'John' => 20,
    'Mike' => 17,
    'Nick' => 10
);
extract($ary);
print($John);//20
print($Mike);//17
print($Nick);//10
?>

個人的には可読性が落ちるような気がする。

■compact関数

<?php
$John = 20;
$Mike = 20;
$Nick = 20;
$ary = compact('John', 'Mike', 'Nick');
var_dump($ary);
/*
array(3) {
  ["John"]=>
  int(20)
  ["Mike"]=>
  int(20)
  ["Nick"]=>
  int(20)
}
*/
?>

各関数について

int extract(array $ary[, int $type=EXTR_OVERWRITE[, string $prefix]])
配列からローカル変数を生成する。プリフィックスを使用しない限り、数字インデックスは変数として生成されない。
array compact(mixed $var[, …])
ローカル変数から配列を生成する。

いらなくね?

おまけに$_GETや$POSTをデフォルトで通すとセキュリティリスクになる。。。はい、使いません!

コメントはまだありません»

No comments yet.

RSS feed for comments on this post.TrackBack URL

Leave a comment