5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

無名関数の使い方について

Last updated at Posted at 2017-08-02

#無名関数とは

無名関数とは、関数名を持たない関数のこと。
変数に代入したり、引数としてコールバック関数を要求する箇所で使用することができる。(PHP5.3以降から使用可能)

##つかいどころ
限定した箇所でしか使用しない関数を宣言したい場合

##関数
array_walk() , array_map() , array_filter() など...

#使用例

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>無名関数について</title>
	<link rel="stylesheet" href="">
</head>
<body>
	<?php 
		$nature = array('water','forest','tree','cloud','sun','river');
		$filter_less5 = function($text) {
			return strlen($text) < 5;
		};
		echo '<p>5文字未満のデータ</p>';
		echo '<ul>';
		$filter_less5 = array_filter($nature,$filter_less5);
		foreach($filter_less5 as $data) {
			echo '<li>'.h($data).'</li>';//tree,sun
		}
		echo '</ul>';

		$filter_equal5 = array_filter($nature,function($text){
			return strlen($text) === 5;
		});
		echo '<p>5文字のデータ</p>';
		echo '<ul>';
		foreach($filter_equal5 as $data) {
			echo '<li>'.h($data).'</li>'; //water,cloud,river
		}
		echo '</ul>';

		function h($string) {
			return htmlspecialchars($string,ENT_QUOTES,'UTF-8');
		}
	?>
</body>
</html>

#補足

strlen → バイト数を計算する(全角文字などは、2文字になる 例:あ → 2 あa → 3)
mb_strlen → 文字列の文字数をカウントする (あ → 1 あa → 2)

5
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?