$array = array(200, 300, 100);
usort($array, function($a, $b) {
return $a > $b;
});
print_r($array); //Array ( [0] => 100 [1] => 200 [2] => 300 )
如果我們想用一個變數($bln)去決定升冪或降冪,寫法可以有以下兩種...使用 global :
$array = array(200, 300, 100);
$bln = 1;
usort($array, function($a, $b) {
global $bln;
if ($bln) {
return $a < $b;
}
else {
return $a > $b;
}
});
print_r($array); //Array ( [0] => 300 [1] => 200 [2] => 100 )
使用 use :
$array = array(200, 300, 100);
$bln = 1;
usort($array, function($a, $b) use($bln) {
if ($bln) {
return $a < $b;
}
else {
return $a > $b;
}
});
print_r($array); //Array ( [0] => 300 [1] => 200 [2] => 100 )
用 global 與 use 結果是相同的,但如果我們多包一層function的時候...
$array = array(200, 300, 100);
$bln = 1;
function mysort($array) {
$bln = 0;
usort($array, function($a, $b) use($bln) {
if ($bln) {
return $a < $b;
}
else {
return $a > $b;
}
});
return $array;
}
$array = mysort($array);
print_r($array); //Array ( [0] => 100 [1] => 200 [2] => 300 )
$array = array(200, 300, 100);
$bln = 1;
function mysort($array) {
$bln = 0;
usort($array, function($a, $b) {
global $bln;
if ($bln) {
return $a < $b;
}
else {
return $a > $b;
}
});
return $array;
}
$array = mysort($array);
print_r($array); //Array ( [0] => 300 [1] => 200 [2] => 100 )
結論:可以看到 use 是使用所在範圍內有效的變數,而 global 則一定是使用全域變數。
No comments:
Post a Comment