0

我在下面有这个功能:

public function set_partial($array)
{
    if (is_array($array)) {
        foreach ($array as $each) {
            self::$_partials[$each[0]] = array('view' => $each[1], 'data' => $each[2]);
        }
    }
}

在 self::$_partials 中,不需要“数据”。那么如何在允许数据为空的同时保持代码简单?现在,如果未提供数据,则会出现偏移错误。

4

2 回答 2

1

您可以检查是否为each[2]isset。如果是,则设置变量,否则使其为空:

<?php
public function set_partial($array){
    if(is_array($array)){
        foreach ($array as $each) {
            self::$_partials[$each[0]] = array('view' => $each[1], 'data' => (isset($each[2])?$each[2]:NULL));
        }
    }
}?>
于 2012-12-19T16:28:00.303 回答
0

如果要避免偏移错误,可以执行以下操作:

public function set_partial($array)
{
    if (is_array($array)) {
        foreach ($array as $each) {
            $view = !empty($each[1]) ? $each[1] : ''; // replace '' with whatever default value you want to use
            $data = !empty($each[2]) ? $each[2] : '';
            self::$_partials[$each[0]] = array('view' => $view, 'data' => $data);
        }
    }
}
于 2012-12-19T16:29:01.690 回答