Jul 22
Еще немного помучал PHP 5.3 на тему Lambda-функций:
$array = array(1, 2, 3);
$array = array_map(function($v) { return $v * $v; }, $array);
var_dump($array);
array(3) {
[0]=>
int(1)
[1]=>
int(4)
[2]=>
int(9)
}
I like that!
written by FX Poster
\\ tags: Closure, Lambda-function, PHP, PHP 5.3
Jul 22
Bolk открыл для сеня потрясающую новость - в PHP 5.3 будут замыкания и реальные lambda-функции. Поподробнее читаем здесь, а также у Bolk’а здесь и здесь (кстати говоря - здесь еще обьясняется, как создаются lambda-functions в текущих версиях PHP, кто не знает - почитайте).
Не выдержал и проверил - поставил себе PHP 5.3:
C:\Program Files\PHP>php -v
PHP 5.3.0-dev (cli) (built: Jul 22 2008 12:21:12)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2008 Zend Technologies
Накидал простенький скриптец для тестов:
$lambda = function () { echo "Hello World!\n"; };
var_dump($lambda);
$lambda = create_function('', 'echo "Hello World!\n";');
var_dump($lambda);
И запустил его:
C:\Program Files\PHP>php test.php
object(Closure)#1 (0) {
}
string(9) " lambda_1"
Как видите - теперь функции являются полноценными обьектами (”Closure - is simply an additional class”), что, на мой взгляд, просто замечательно! Даешь функции высших порядков в PHP!
written by FX Poster
\\ tags: Closure, Lambda-function, PHP, PHP 5.3
Последние комментарии