Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CakePHP:未定义变量,但已定义_Php - Fatal编程技术网

CakePHP:未定义变量,但已定义

CakePHP:未定义变量,但已定义,php,Php,我使用的是CakePHP2.4.4。在控制器中,我正在设置一个数组: $bla = array(); $bla[] = 'phone'; $bla[] = 'id'; $this->set(compact('bla')); 在视图中,当我尝试调试这个$bla数组时,它调试得很好。但是,当我尝试检查这个数组中是否有一个字符串时,它给出了未定义变量:bla错误。整个视图的代码: array_walk_recursive($data, function(&$val, $key

我使用的是CakePHP2.4.4。在控制器中,我正在设置一个数组:

$bla = array();
$bla[] = 'phone';
$bla[] = 'id';
$this->set(compact('bla'));
在视图中,当我尝试调试这个
$bla
数组时,它调试得很好。但是,当我尝试检查这个数组中是否有一个字符串时,它给出了
未定义变量:bla
错误。整个视图的代码:

     array_walk_recursive($data, function(&$val, $key) {
        if (is_numeric($val) AND in_array($key, $bla)) { //this line gives me error: Undefined variable $bla, but it is actually defined
            if (ctype_digit($val)) {
                $val= (int) $val;
            } else {
                $val = (float) $val;
            }
        }
    });

您在
array\u walk\u recursive
中创建的匿名函数无法访问
$bla
和任何其他外部变量。您应该使用
use
显式地将此变量传递给此函数:

array_walk_recursive($data, function(&$val, $key) use ($bla) {
    if (is_numeric($val) AND in_array($key, $bla)) {
        if (ctype_digit($val)) {
            $val= (int) $val;
        } else {
            $val = (float) $val;
        }
    }
});

您在
array\u walk\u recursive
中创建的匿名函数无法访问
$bla
和任何其他外部变量。您应该使用
use
显式地将此变量传递给此函数:

array_walk_recursive($data, function(&$val, $key) use ($bla) {
    if (is_numeric($val) AND in_array($key, $bla)) {
        if (ctype_digit($val)) {
            $val= (int) $val;
        } else {
            $val = (float) $val;
        }
    }
});

匿名函数无法访问
$bla
匿名函数无法访问
$bla
谢谢您的快速回答。你说得很对!谢谢你的快速回答。你说得很对!