5

配列が必要な場所で文字列を使用する理由はありますか?

私には、デリミテッド文字列を渡し、データベースクラスメソッドでそれを分解して、2つの別々の文字列から複数のフィールド/値のペアを引き出すことを望んでいる開発者がいます。文字列配列を送信しない理由は考えられません。

例:

$s = "value1|value2|value3" ;
$s2 = explode("|", $s);

vsアレイ

$s3 = array(
    "1" => "value1",
    "2" => "value2",
);

未知の数のキーと値のペアを実際に渡すというアイデアは知っていますが、爆発した文字列が答えだとは思いません。しかし、私は間違っている可能性があります。

4

2 に答える 2

3

文字列配列を送信しない理由は考えられません。

文字列は単一のエンティティです。同僚は、文字列「object」(変数またはエンティティの意味でのオブジェクト)を使用して、情報を伝達します。これは、ドメイン固有の言語のごくわずかな形式です。

しかし、すでに示しているように、それは単なるオーバーヘッドであり、必要ではありません。おそらく、その男はタイプするのが面倒で、それがもっとクールだと思っています。実際にもっとクールなのは、PHPをアップグレードして、新しい配列表記を使用することです。それも短く、最初にパーサー(ここでは分離文字で爆発する)を必要とする文字列よりも多くの情報を運びます:

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

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

["value1", "value2", "value3"];

あなたの同僚がどれほど深刻であるかについて意見が必要な場合:彼は遊んでいます。再生は問題ありませんが、共有コードベースのスタイルとしてそれを抑制できることを示すためにパワープレイを行う必要がある場合は、指を叩きます。それは愚かです。配列が必要な場合は、配列を渡します。

これは、正規表現と言うようなものではありません。これは、コードベースに問題を導入している同僚の自己嘲笑にすぎません。何かが可能であるからといって、それが優れているとは限りません。

文字列配列を送信しない理由は考えられません。

さて、私が想像できるいくつかの考えられる理由:

  • 他の人は、自分とは違うことを知っていて、プロジェクトの他のすべての人を説得する力を持っていることを示したいだけです(社会問題)
  • チームでの地位が低すぎることを受け入れることはできません。他のすべての人を説得するための合理的な議論をすることさえできず、チームで応答的にエスカレートするのではなく、より強い力を得ることを望んでいるので、ここでうめき声を上げます(社会問題)
  • その男はただの野郎であり、彼だけがコードを編集および変更できるように秘密の複雑さを導入したいと考えています(キャリア管理は、社会問題の兆候でもあります)。

これらのコメントをあまり真剣に受け止めないでください;)質問しても大丈夫ですが、そのようなものが役立つ理由がある可能性があるため、これは魚臭いので、答えはあまりありません(ここでは、OOPの小さなものが実際に異なって見え始めます)。したがって、常に依存しますが、編集するコードは簡単に編集できるようにし、魔法をあまり追加しないようにしてください。その文字列を魔法の配列と見なすことができます。

于 2012-06-09T12:15:31.213 に答える
0

100%正確に答えるには十分な情報ではないと思います。ほとんどの場合、答えはノーです。しかし、これは特定のケースかもしれません。

どこから、どこにデータを渡しますか?

たとえば、「基になる」レイヤーがJSONまたはXMLの場合、配列として考えるものが実際には文字列である(またはそうであった)場合があります。また、文字列を内破/分解することでデータの受け渡しと解析が高速になる可能性がありますが、これに対する一般的な答えはありません。データの量や構造など、多くのことに依存します。あなたはそれを試してテストする必要があります。または、より具体的な情報を提供してください:)

于 2012-06-08T13:13:50.870 に答える