2011-01-21 9 views
0

可能性の重複:
Anonymous functions pre PHP 5.3.0PHP無名関数

こんにちは、

私が行うことができますどのように

$ar = array_filter($ar, function($el) { 
    $search = 'New York'; 
    $name = $ar['name']; 
    $potentialNumber = substr($name, strlen($search)); 
    return ((substr($name, 0, strlen($search)) == $search) && // starts with NY 
      ($potentialNumber == '' || is_numeric($potentialNumber)); // [0-9]* 
}); 

PHP 5.3の前に?

+0

午前なければなりませんが、[匿名関数事前PHP 5.3.0]の明確な複製(HTTP ://stackoverflow.com/questions/3694620/anonymous-functions-pre-php-5-3-0) – Gordon

+0

*(参考)* [PHP言語のコールバック](http://de2.php.net/manual /en/language.pseudo-types.php#language.types.callback) – Gordon

答えて

0

賢明な解決策は、関数を定義することですので、いずれかを介して(、ラムダ関数を模倣するためにcreate_functionを使用することですあなたが現在いる関数/メソッドのローカルスコープ内create_functionまたは通常の使用)

0

ただ、コールバックを使用しています。

$ar = array_filter($ar, "myFunction"); 

function myFunction($el) { 
    $search = 'New York'; 
    $name = $ar['name']; 
    $potentialNumber = substr($name, strlen($search)); 
    return ((substr($name, 0, strlen($search)) == $search) && // starts with NY 
      ($potentialNumber == '' || is_numeric($potentialNumber)); // [0-9]* 
} 

あなたの代わりにグローバルコードのクラスにしている場合は、array_filterに渡されたコールバックがclosevotesの外にarray(this, 'myFunction')