PHP爆炸字符串与数组?

Des*_*era 5 php arrays string explode

是否有理由使用需要数组的字符串?

我有一个开发人员想要传递一个被删除的字符串,在数据库类方法中将其爆炸以从2个单独的字符串中提取多个字段/值对.我想不出没有发送字符串数组的理由.

例:

$s = "value1|value2|value3" ;
$s2 = explode("|", $s);
Run Code Online (Sandbox Code Playgroud)

vs一个数组

$s3 = array(
    "1" => "value1",
    "2" => "value2",
);
Run Code Online (Sandbox Code Playgroud)

我知道这个想法是实际传递未知数量的键/值对,但我不认为你爆炸的字符串就是答案.但我可能是错的.

hak*_*kre 3

我想不出不发送字符串数组的理由。

字符串是单个实体。您的同事使用字符串“对象”(变量或实体意义上的对象)来使其携带信息,这是领域特定语言的一种非常小的形式。

但正如它已经表明的那样,这只是开销而不是必要的。可能那个人只是懒得打字,认为这样更酷。实际上更酷的是,只需升级 PHP 并使用新的数组表示法即可。它也很短,并且比首先需要解析器(这里用分隔符分解)的字符串携带更多信息:

explode("|", "value1|value2|value3");

array("value1", "value2", "value3");

["value1", "value2", "value3"];
Run Code Online (Sandbox Code Playgroud)

如果你想知道你的同事有多认真:他在玩。玩游戏还可以,但如果他需要玩强力游戏来表明他可以将其作为一种风格压制到共享代码库上,那就打他的手指吧。那太愚蠢了。如果需要数组,请传递数组。

这不像正则表达式。这只是你的同事在代码库中引入问题的一些自嘲。仅仅因为某件事是可能的并不意味着它更好。

我想不出不发送字符串数组的理由。

好吧,我可以想象一些可能的原因:

  • 其他人只是想表明他们的了解与你不同,并且有能力说服项目中的其他人(社会问题)
  • 你不能接受你在团队中的地位太低,你甚至不能提出合理的论据来说服其他人,你跑到这里抱怨,因为你希望自己找到更多的力量,而不是响应式升级@你的团队(社会问题)
  • 那家伙只是一个混蛋,想要引入秘密的复杂性,以便只有他可以编辑和更改代码(职业管理,也可能是社会问题的标志)。

请不要太认真地对待这些评论;)你问没关系,但没有太多答案,因为这闻起来很可疑,因为可能有理由认为类似的东西可能有用(尽管我对此表示怀疑,因为有些OOP 的一些小事情在这里开始看起来非常不同)。因此,这始终取决于情况,但请尽量使您编辑的代码易于编辑,并且不要添加太多魔力。人们可以将那根绳子视为一个魔法阵。