猿问

PHP - 分配变量并使用它一步将值分配给数组

我有config.php一个包含这个示例数组的文件:


return [

  myarray => [

    'foo' => 'bar_'.str_random(5).'.log'

  ]

]

我想将 分配给str_random(5)一个$var变量并一步使用它;例如,类似(这个例子不起作用):


return [

  myarray = [

    'foo' => 'bar_'.(($var=str_random(5)) && $var).'.log'

  ]

]

输出应该是:


echo $var;

uoEUu


print_r($myarray);

[

  'foo' => 'bar_uoEUu.log'

]

谢谢


编辑


好的,我找到了这个解决方案,但它不喜欢我:


return [

  myarray = [

    'foo' => 'bar_'.$var=str_random(5).''.$var.'.log'

  ]

]

任何更清洁的建议?


白猪掌柜的
浏览 89回答 3
3回答

萧十郎

海事组织,你想太多了。如果您需要$var在分配给它后使用,foo您可以执行以下操作:$var = str_random(5);$myarray = [  'foo' => "bar_$var.log"];

茅侃侃

解决方案实际上比您想象的要简单得多:$myarray = [  'foo' => 'bar_'.($var=str_random(5)).'.log'];这样做的原因是任何赋值都可以用作其值为赋值的表达式。这通常不是必需的,但有一些用途,例如将多个变量设置为相同的值:$foo = $bar = 42;在这种情况下,您将连接一个固定字符串、一个表达式(恰好是一个赋值)和另一个固定字符串;额外的括号只是确保在连接之前评估赋值表达式。
随时随地看视频慕课网APP
我要回答