skillup

技術ブログ

PHP

PHPの無名関数+array系の関数

投稿日:

PHPの無名関数について。

PHP5.3.0以降で実装され、概念としては知っていましたが、あまり使ったことがありませんでした。

今開発しているPHPの案件で無名関数のソースをみたので、復習もかねてメモです。

無名関数とは?

基本的な使用法

その名のとおり、名前のない関数のことです。JavaScriptなんかでは大量にでてきますが、下記のようなソースです。別名クロージャーともいわれるようです。

http://php.net/manual/ja/functions.anonymous.php

array_map系

無名関数と同時に扱われやすい、array_map,array_walk,array_filter,array_column,array_reduceなど。

http://qiita.com/ArimaRyunosuke/items/6a76f21f9d79e8695fc7
http://qiita.com/asigochan/items/6e27405b6d385786c6c9

useを使ったバインディング

本来PHPは関数外の変数を使用することはできませんが、useを使うことで引数としてではなく、関数外の値を使うことができます。また参照渡しにすることで遅延バインディングも可能です。

http://hensa40.cutegirl.jp/archives/2436

-PHP

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

underbarphpについて+配列処理頻出パターン

配列系の処理を関数型で行いたいときにJavaだとラムダ式、javaScriptだとunderscore.jsがあります。 PHPではできないものか・・といろいろと探していたところunderbar.ph …

no image

php5.6のインストール+cake3でのbake

cake3を動かしたい場合、PHP5.4以上でないと動きません。 2016年1月現在、CentOS6でyumでPHPをインストールする場合、php5.3ですので、5.4以上を入れる場合、別のリポジトリ …

no image

キャッシュについて(主にmemcachedを中心に)

Webサービスのパフォーマンス向上で目に見えて効果があることの一つがDBへのアクセス回数を減らすことです。 それはSQLを発行する回数を少なくするなど、普段からのプログラムの書き方ももちろん大事なので …

no image

herokuでのmb_convert_encoding

herokuにあげたアプリを起動しようとしたらmb_convert_encodingでundefinedエラーが帰ってきました。 どうやらマルチバイトのライブラリがないエラーのようですね。 といいつつ …

no image

PHPでのリフレクション

Javaなどでは結構やりましたが、PHPでも動的にインタンス生成→メソッド呼び出しということをやれるとやれることが一気にふえるため、ちょっとメモです。 Contents1 ソース2 参考リンク ソース …