为什么我的 PHP class 方法在我尝试使用在 foreach 中使用 preg_replace 的值时没有返回任何错误?
Why is my PHP class method returning nothing when I try to use values taken from using preg_replace inside foreach without giving errors?
我试图用一些数据的一些变化来构建一个数组,当使用 preg_replace 并回显值时,它像正常一样工作,但是如果我尝试将这些值存储在一个数组中,该函数只是 returns 什么都没有,也没有给出错误。
这是我正在使用的一段代码,它在 class.
中
$actions = array();
foreach($controllers as $ck => $cv) {
$cvar = 'br'.$ck.'actions';
foreach(self::$$cvar as $key => $value) {
if ($key != $value) {
$actions[$value] = $key;
if( preg_match('/[A-Z]/',$key)!==0 || preg_match('/[A-Z]/',$value)!==0 )
{
$key2=strtolower(preg_replace('/(?<=\w)([A-Z])/','-\1',$key));
$value2=strtolower(preg_replace('/(?<=\w)([A-Z])/','-\1',$value));
$actions[$value2] = $key2; // Everything works except for this line, if I comment it, it works, if I don't, it simply doesn't return even an error.
}
}
}
}
return $actions;
是什么导致了这种奇怪的行为?它应该能够像正常一样添加到数组中,但它不能...
所以,我发现了问题所在:
在用于创建 $actions 数组($br(controller)actions 数组)的值数组中,有些值不小心带有一些变音符号(例如单词“Demonstração”),当通过 preg_replace 函数,变成了一些黑色问号框(��替换字符),然后由函数将其作为数组键提供,并以某种方式使函数 return 为空而不是数组.打印值显示函数在所有循环迭代中仍然 运行,但数组根本没有 return 正确地使用这些值。
我通过删除变音符号修复了它,然后该方法 运行 顺畅了。
我试图用一些数据的一些变化来构建一个数组,当使用 preg_replace 并回显值时,它像正常一样工作,但是如果我尝试将这些值存储在一个数组中,该函数只是 returns 什么都没有,也没有给出错误。
这是我正在使用的一段代码,它在 class.
中 $actions = array();
foreach($controllers as $ck => $cv) {
$cvar = 'br'.$ck.'actions';
foreach(self::$$cvar as $key => $value) {
if ($key != $value) {
$actions[$value] = $key;
if( preg_match('/[A-Z]/',$key)!==0 || preg_match('/[A-Z]/',$value)!==0 )
{
$key2=strtolower(preg_replace('/(?<=\w)([A-Z])/','-\1',$key));
$value2=strtolower(preg_replace('/(?<=\w)([A-Z])/','-\1',$value));
$actions[$value2] = $key2; // Everything works except for this line, if I comment it, it works, if I don't, it simply doesn't return even an error.
}
}
}
}
return $actions;
是什么导致了这种奇怪的行为?它应该能够像正常一样添加到数组中,但它不能...
所以,我发现了问题所在:
在用于创建 $actions 数组($br(controller)actions 数组)的值数组中,有些值不小心带有一些变音符号(例如单词“Demonstração”),当通过 preg_replace 函数,变成了一些黑色问号框(��替换字符),然后由函数将其作为数组键提供,并以某种方式使函数 return 为空而不是数组.打印值显示函数在所有循环迭代中仍然 运行,但数组根本没有 return 正确地使用这些值。
我通过删除变音符号修复了它,然后该方法 运行 顺畅了。