Zasadniczo używam tego poręczną funkcję przetwarzania wiersze dB (zamknąć oko na PDO i/lub innych rzeczy)Dostęp zmienną poza użyciem funkcji anonimowej jako params
function fetch($query,$func) {
$query = mysql_query($query);
while($r = mysql_fetch_assoc($query)) {
$func($r);
}
}
Dzięki tej funkcji można po prostu zrobić:
fetch("SELECT title FROM tbl", function($r){
//> $r['title'] contains the title
});
Załóżmy teraz, że muszę połączyć wszystkie $r['title']
w var (to tylko przykład).
Jak mogę to zrobić? Myślałam coś takiego, ale to nie jest bardzo elegancki:
$result = '';
fetch("SELECT title FROM tbl", function($r){
global $result;
$result .= $r['title'];
});
echo $result;
Czy to globalne spowolnienie nie powinno zostać usunięte? –
Tak, oczywiście, dzięki za wskazanie :) – Xaerxess
+1 za podkreślenie "wczesnego wiązania". Jednak w powyższym przykładzie, kiedy 'use (& $ result)' jest przekazywane przez odniesienie, tak naprawdę nie ma to znaczenia? –