在声明数组时,是否可以让数组将其自己的元素值分配给它的其他元素之一?
这是一个代码示例:
$arr = array ( 0 => '<ul class="'.$arr[1].'">', 1 => 'some_class' );
echo $arr[0]; // <ul class="some_class">
我尝试通过引用传递(&$arr[1]
而不是$arr[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">
你可以按照这些思路做一些事情
$arr = array ( '<ul class="%s">', 'some_class' );
当你想渲染时,只需调用
echo call_user_func_array("sprintf", $arr);