Asial Blog

Recruit! Asialで一緒に働きませんか?

PHPerなら知っておいて損はない10の関数

カテゴリ :
バックエンド(プログラミング)
タグ :
Tech
PHP
こんにちは。小川です。
本日は数あるPHPの関数の中でも、わりと知られてそうで実は知らない人もいるかもしれない便利な関数をご紹介します。

nl2br

改行コードを<br />に変換する関数です。

  1. <?php
  2.  
  3. $string = <<<EOS
  4. foo
  5. bar
  6. baz
  7. EOS;
  8.  
  9. echo nl2br($string);

結果:

  1. foo<br />
  2. bar<br />
  3. baz

デフォルトではXML形式の空要素を出力しますが、PHP 5.3.0から第2引数にfalseを指定すると<br>として出力できるようにもなりました。
この関数はもはやPHPerなら常識でしょうか?


mb_strimwidth

文字を丸める関数です。

  1. <?php
  2.  
  3. $string = "アシアルは今、より多くのお客様にサービスを提供していこうと考えています。業務内容には多くの範囲が含まれますが、自身のアイデアを活かしたい、今までにないWebサービス
  4. を作りたい、PHP言語に興味がある、といった方は、アシアルで一緒に頑張ってみませんか?";
  5.  
  6. echo mb_strimwidth($string, 0, 60, '...', 'UTF-8');

結果:

  1. アシアルは今、より多くのお客様にサービスを提供していこう...

上記のように、指定した文字数分に文字列を丸めてくれます。第2引数が開始位置、第3引数が丸める幅です。丸める幅は半角文字の幅で計算されますので、全角の場合は2倍の数値を指定します。

number_format

数値をフォーマットする関数です。

  1. <?php
  2.  
  3. $number = 12456.789;
  4.  
  5. echo number_format($number);
  6. echo number_format($number, 2);

結果:

  1. 12,457
  2. 12,456.79

千単位でグループ化してくれます。第2引数に小数点以下の桁数も指定可能です。


http_build_query

配列からクエリ文字列を生成する関数です。

  1. <?php
  2.  
  3. $data = array('name' => 'fivestar', 'age' => 23);
  4.  
  5. echo http_build_query($data, null, '&');

結果:

  1. name=fivestar&age=23

基本的には第1引数だけ指定すれば十分ですが、php.iniのarg_separator.outputという値によって出力結果が変わるため、第3引数に'&'を明示的に指定した方が安全です。
また、各要素には自動的にURLエンコードがかけられます。

parse_str

http_build_queryの逆バージョンのような関数です。

  1. <?php
  2.  
  3. $query = "name=fivestar&age=23";
  4.  
  5. parse_str($query, $data);
  6.  
  7. var_dump($data);

結果:

  1. array(2) {
  2.   ["name"]=>
  3.   string(8) "fivestar"
  4.   ["age"]=>
  5.   string(2) "23"
  6. }

戻り値ではなく、第2引数に変数の参照を渡します。


array_filter

配列をフィルタリングする関数です。

  1. <?php
  2.  
  3. $array = array(1, 2, 3, 4, 5);
  4. $filtered = array_filter($array, function($v) {
  5.     return ($v % 2) === 0;
  6. });
  7. var_dump($filtered);
  8.  
  9. $array = array(1, 2, null, 3);
  10. $filtered = array_filter($array);
  11. var_dump($filtered);

結果:

  1. array(2) {
  2.   [1]=>
  3.   int(2)
  4.   [3]=>
  5.   int(4)
  6. }
  7. array(3) {
  8.   [0]=>
  9.   int(1)
  10.   [1]=>
  11.   int(2)
  12.   [3]=>
  13.   int(3)
  14. }

第1引数に指定した配列を第2引数で指定したコールバックによってフィルタリングします。コールバックがfalseを返すと要素は除外されます。コールバックを指定しないと、偽と見なされる要素が除外されます。


ucfirst

文字列の先頭を大文字にします。

  1. <?php
  2.  
  3. $string = "foo";
  4.  
  5. echo ucfirst($string);

結果:

  1. Foo

これとは逆に先頭を小文字にするlcfirst関数もありますが、こちらは5.3.0から利用可能です。


var_dump

これは当然ご存じですよね。var_dump()には、複数の要素が指定可能です。

  1. <?php
  2.  
  3. var_dump(1, "str", 0.2);

結果:

  1. int(1)
  2. string(3) "str"
  3. float(0.2)


memory_get_peak_usage

PHPに割り当てられたメモリのピーク値を取得します。

  1. <?php
  2.  
  3. echo memory_get_peak_usage();
  4. echo memory_get_peak_usage(true);

結果:

  1. 634952
  2. 786432

そのプロセス中のピークの値が返されます。引数trueを指定すると実際に割り当てられたメモリ量を取得します。

phpcredits

PHPのクレジットを出力します。これはぜひ自分の手で実行してみてください!


さて、以上でしたがいかがでしょうか。全部知っているという方も多いかと思われます。
PHPは便利な関数がたくさんあってすばらしいですね!