PHPerなら知っておいて損はない10の関数
こんにちは。小川です。
本日は数あるPHPの関数の中でも、わりと知られてそうで実は知らない人もいる かもしれない便利な関数をご紹介します。
改行コードを<br />に変換する関数です。
<?php
$string = <<<EOS
foo
bar
baz
EOS;
echo nl2br($string);
結果:
foo
bar
baz
デフォルトではXML形式の空要素を出力しますが、PHP 5.3.0から第2引数にfalseを指定すると<br>として出力できるようにもなりました。
この関数はもはやPHPerなら常識でしょうか?
文字を丸める関数です。
<?php
$string = "アシアルは今、より多くのお客様にサービスを提供していこうと考えています。業務内容には多くの範囲が含まれますが、自身のアイデアを活かしたい、今までにないWebサービス
を作りたい、PHP言語に興味がある、といった方は、アシアルで一緒に頑張ってみませんか?";
echo mb_strimwidth($string, 0, 60, '...', 'UTF-8');
結果:
アシアルは今、より多くのお客様にサービスを提供していこう...
上記のように、指定した文字数分に文字列を丸めてくれます。第2引数が開始位置、第3引数が丸める幅です。丸める幅は半角文字の幅で計算されますので、全角の場合は2倍の数値を指定します。
数値をフォーマットする関数です。
<?php
$number = 12456.789;
echo number_format($number);
echo number_format($number, 2);
結果:
12,457
12,456.79
千単位でグループ化してくれます。第2引数に小数点以下の桁数も指定可能です。
配列からクエリ文字列を生成する関数です。
<?php
$data = array('name' => 'fivestar', 'age' => 23);
echo http_build_query($data, null, ' &');
結果:
name=fivestar &age=23
基本的には第1引数だけ指定すれば十分ですが、php.iniのarg_separator.outputという値によって出力結果が変わるため、第3引数に'&'を明示的に指定した方が安全です。
また、各要素には自動的にURLエンコードがかけられます。
http_build_queryの逆バージョンのような関数です。
<?php
$query = "name=fivestar &age=23";
parse_str($query, $data);
var_dump($data);
結果:
array(2) {
["name"]=>
string(8) "fivestar"
["age"]=>
string(2) "23"
}
戻り値ではなく、第2引数に変数の参照を渡します。
配列をフィルタリングする関数です。
<?php
$array = array(1, 2, 3, 4, 5);
$filtered = array_filter($array, function($v) {
return ($v % 2) === 0;
});
var_dump($filtered);
$array = array(1, 2, null, 3);
$filtered = array_filter($array);
var_dump($filtered);
結果:
array(2) {
[1]=>
int(2)
[3]=>
int(4)
}
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[3]=>
int(3)
}
第1引数に指定した配列を第2引数で指定したコールバックによってフィルタリングします。コールバックがfalseを返すと要素は除外されます。コールバックを指定しないと、偽と見なされる要素が除外されます。
文字列の先頭を大文字にします。
<?php
$string = "foo";
echo ucfirst($string);
結果:
Foo
これとは逆に先頭を小文字にするlcfirst関数もありますが、こちらは5.3.0から利用可能です。
これは当然ご存じですよね。var_dump()には、複数の要素が指定可能です。
<?php
var_dump(1, "str", 0.2);
結果:
int(1)
string(3) "str"
float(0.2)
PHPに割り当てられたメモリのピーク値を取得します。
<?php
echo memory_get_peak_usage();
echo memory_get_peak_usage(true);
結果:
634952
786432
そのプロセス中のピークの値が返されます。引数trueを指定すると実際に割り当てられたメモリ量を取得します。
PHPのクレジットを出力します。これはぜひ自分の手で実行してみてください!
さて、以上でしたがいかがでしょうか。全部知っているという方も多いかと思われます。
PHPは便利な関数がたくさんあってすばらしいですね!