検索

ホームページ  >  に質問  >  本文

すべての PHP 型を文字列に変換する最短の方法

<p>私は一般的なシステムを書いており、いつかは医学などの分野に適用できるようになることを願っています (つまり、「科学的」になることを願っています)。 </p> <p>PHP 内のすべてのデータを文字列で表すのが最善の方法だと思います (true は「true」、false は「false」など)。その理由は、php ではすべての値が一意の文字列表現 (php コード自体など) を持つためです。 </p> <p>このプログラムの設計プロセスをスピードアップするためにこの質問を投稿しました。 </p> <p>数値やブール値など、一部の値は簡単に文字列に変換できます。 </p> <p>オブジェクト、配列、リソースなど、簡単ではないものもあります。 </p> <p>オブジェクトや配列を渡す形式は基本的にjsonだと思いますが、完全に一致しているかはわかりません。これは私が現在持っているもの(何もない)よりは優れていますが、少なくともある時点である程度まで改良したいと考えています。 </p> <p>何かアイデアはありますか? </p>
P粉369196603P粉369196603455日前983

全員に返信(1)返信します

  • P粉615886660

    P粉6158866602023-09-06 11:48:23

    これは確かに野心的な目標であり、あまりにも野心的すぎて、挑戦するのは愚かなことでしょう。

    さて、あなたはおそらく実際には「誰にでも何でもできる」という意味ではありませんが、制限を設けずにそれを表現しようとしているという事実はあなたの質問に関連しています。このため、シリアル化形式を見つけるのが不必要に困難になります。

    たとえば、Resources について言及しました。これは、PHP がデータベース接続やファイル ハンドルを開くなどの目的で使用します。これらは、しばらく存続してから消える何かへの一時的なポインターであり、それらをシリアル化することは PHP でサポートされていないだけでなく、ほとんど意味がありません。

    「すべて」をカバーしようとするのではなく、実際に処理する必要があるデータの種類を考慮する必要があります。おそらく、システム内で定義されたクラスを主に使用するため、クラスを表現したい任意の形式を定義できます。キーと値のペアの任意のコレクションを PHP 配列の形式で処理したい場合があります。将来の拡張に備えて余地を残しておくこともできますが、それは形式の 柔軟性 に関するものであり、現時点での具体的な答えではありません。

    そこから、希望の物件を探して買い物をすることができます:

    • JSON は、非常に人気のある「最小公倍数」形式です。その主な欠点は、特定のカスタム タイプを表す方法がないことです。すべての はリストとキーと値のペアで構成されなければなりません (私は「JSON にはクラスがありません」と言いたいのですが)。
    • XML は以前に比べてあまり人気がありませんが、非常に強力であり、カスタム言語と型の定義に使用できます。これは非常に冗長ですが、適切に圧縮されます。最近のファイル形式の多くは、実際には圧縮された XML ファイルを含む zip アーカイブです。
    • PHP シリアル化形式は実際には、データのキャッシュなど、短期間のアプリ内目的にのみ適しています。これはかなり簡潔で、PHP の型システムと密接に関連していますが、unserialize man ページ で説明されているように、ユーザーがデータに影響を与える場合にはセキュリティ上の懸念があります。
    • 必要に応じて、人間が判読できる表現に限定されない、さらに簡潔な形式があります。

    明らかに、リストは無限にあります...

    返事
    0
  • キャンセル返事