【问题标题】:PHP Set Variable to Array Key in One LinePHP在一行中将变量设置为数组键
【发布时间】:2011-05-21 09:35:02
【问题描述】:

这将是一个非常简单的问题,我的代码如下所示:

<?php
$rawmessage = "This is what I want.--This is all junk.";

$fmessage = explode("--", $rawmessage);
//Alt. Universe #1: $fmessage = $fmessage[0];

echo $fmessage[0]; //"This is what I want."
//Alt. Universe #1: echo $fmessage;
?>

现在我知道这听起来有多愚蠢,但有没有办法可以在一行中将 $fmessage 分配给 [0]?因为 1)我不想写 $fmessage[0],此时它不需要是一个数组,并且 2)我想知道这是否可行,因为这不是我第一次'我只想将数组的一部分设置为变量。我想写的例子(当然是在我的幻想之地。这会在现实中引发错误。)

<?php
$rawmessage = "This is what I want.--This is all junk.";

$fmessage = explode("--", $rawmessage)[0];
//In my fantasy land, adding the [0] means that the array's key [0] value is set to $fmessage

echo $fmessage; //"This is what I want." For real.
?>

【问题讨论】:

  • 您的幻想大陆数组解引用实际上适用于 PHP 主干中的最新代码,因此该功能可能会出现在 PHP 5.4 中。
  • @konorce 关于该死的时间!
  • 说什么?如果我提前考虑的话,我应该成为一名 PHP 开发人员! :P
  • 如果您考虑将:) 用于namespace separator,您只能成为PHP 开发人员:P
  • @alex 我必须认真思考才能弥补--!还有,bit.ly/bBwlZw

标签: php arrays variables key


【解决方案1】:
list($fmessage) = explode('--', $rawmessage);

list() 不是函数,而是 PHP 语言构造(或者只是一个看起来像函数的运算符)。

它将数组成员解包到局部变量中......

$array = array('a', 'b', 'c');

list($a, $b, $c) = $array;

var_dump($a, $b, $c);

输出...

string(1) "a"
string(1) "b"
string(1) "c"

【讨论】:

  • 你太他妈快了! ;-) +1
  • O_O 速度非常快。不过,我很清楚,我是否应该期待 PHP 开发人员的访问并因不良做法而受到一记耳光,还是这是 A-OH-KAY?
  • @NessDan 这很好,只要你不滥用它。基本上这是您发布的代码的简洁版本,最后的结果相同,所以没关系。
猜你喜欢
  • 2013-05-19
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
  • 2022-01-20
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多