0
如何为$matches
参数创建一个全局变量preg_match?如果提供参数,则创建一个全局变量
在以下代码中,preg_match
会创建全局变量$Hel_matches
和$Wor_matches
即使它们未定义。
$string = "Hello, World!";
$pattern1 = '/Hel/';
$pattern2 = '/Wor/';
preg_match($pattern1, $string, $Hel_matches);
preg_match($pattern2, $string, $Wor_matches);
print_r($Hel_matches);
print_r($Wor_matches);
我希望能够做同样的事情。
例如,odd_numbers()
返回填充了0
和$max
之间的奇数的数组。
function odd_numbers($max) {
$numbers = [];
for ($i = 0; $i <= $max; $i++) {
if ($i % 2 == 1) {
$numbers[] = $i;
}
}
return $numbers;
}
$odd_numbers = odd_numbers(10);
print_r($odd_numbers);
如果我想要做的odd_numbers()
一些额外的计算,并返回(用于调试,例如),好了,我不能。我只能返回一件事。因此,我将第二个参数(变量)传递给odd_numbers()
,函数返回/将返回值赋给该变量。
// $odd_numbers = odd_numbers(10, $evens); // fill $evens (if provided) with even numbers for debug purposes
print_r($odd_numbers);
// print_r($evens); // debug
如何检查是否'提供$ evens'与否? 'odd_numbers'可能会在有或没有'$ evens'的情况下被调用。 – akinuri
您可以使用http://php.net/manual/en/function.func-num-args.php - 我会用示例更新答案 – rjdown
好的,这似乎是个窍门。 – akinuri