0

在声明数组时,是否可以让数组将其自己的元素值分配给它的其他元素之一?

这是一个代码示例:

$arr = array ( 0 => '<ul class="'.$arr[1].'">', 1 => 'some_class' );

echo $arr[0]; // <ul class="some_class">

我尝试通过引用传递&$arr[1]而不是$arr[1]在上面的代码中),但它给出了语法错误。

4

2 回答 2

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">
于 2013-07-02T21:17:53.480 回答
1

你可以按照这些思路做一些事情

$arr = array ( '<ul class="%s">', 'some_class' );

当你想渲染时,只需调用

echo call_user_func_array("sprintf", $arr);
于 2013-07-02T21:40:24.993 回答