是否可以让一个数组在声明数组时为其中一个元素指定自己的元素值?
这是一个代码示例:
$arr = array ( 0 => '<ul class="'.$arr[1].'">', 1 => 'some_class' );
echo $arr[0]; // <ul class="some_class">
我在上面的代码中尝试过passing by reference(&$arr[1]
而不是$arr[1]
),但它会出现语法错误。
答案 0 :(得分:1)
不,在声明数组之前,您无法访问数组的元素。只需使用另一个变量:
$class_name = 'some_class'
$arr = array ( 0 => '<ul class="'.$class_name.'">', 1 => $class_name );
echo $arr[0]; // <ul class="some_class">
您也可以单独指定元素,并在以后的作业中引用它们:
$arr = array();
$arr[1] = 'some_class';
$arr[0] = '<ul class="'.$arr[1].'">';
echo $arr[0]; // <ul class="some_class">
答案 1 :(得分:1)
你可以沿着这些方向做点什么
$arr = array ( '<ul class="%s">', 'some_class' );
当你想要渲染时只需要调用
echo call_user_func_array("sprintf", $arr);