2016-10-09 7 views
0
$array = array(); 
$array = $dom->find('a')->each(function ($dom, $array) { 
    $array[] = $dom->getText(); 
    echo $dom->getText(); // WORKING OK! 
    return $array; 
}); 

print_r($array); // RETURN EMPTY ARRAY 

外部の配列に値を追加するにはどうすればよいですか?この例では、これらの値を取得して関数で表示することができますが、それらを配列に追加して次に配列を返すと、外部関数に空の配列があります。関数から変数を返して使用するには?

+0

あなたの関数が外側の変数へのアクセス権を持っているしたい場合は、関数の内部で、グローバルとして宣言する必要があります。 – SMW

+0

間違いだった申し訳ありませんが、$ tの。私はこれを修正した。 – desef

+1

@SachithMWクロージャー外の重要な変数への正しい方法は、 'use'言語構造を使用することです。 –

答えて

0
$links = array(); 

$dom->find('a')->each(function ($dom, $array) { 
    callBack($dom->getText()); 
}); 

function callBack($item){ 
    global $links; 
    $links[] = $item; 
} 

print_r($links); 
+1

'global'はひどい考えです。 [Dependency Injection](http://stackoverflow.com/documentation/php/194/variables/2496/global-variable-best-practices)が優れています – Machavity

関連する問題