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は便利な関数がたくさんあってすばらしいですね!