7

視覚的な表現、シンプルさ、そしてもちろん私の好奇心を刺激するために、PHP 配列を有効な PHP リソースに変換する方法を考えています。

以下の例を参照してください: ( http://dbug.ospinto.com/ここに画像の説明を入力 で入手可能な dBug コンポーネントで作成されたサンプル画像)

私は3つの例を作りました:

  1. リソース: これは、グリッドとして視覚化された MySQL リソースの典型的な表現です。
  2. object: 配列からの手作りの作成オブジェクト
  3. array: 手作りの多次元配列

ご覧のとおり、リソースは視覚的な美しさですが、オブジェクトと配列は多次元配列を使用して構築されており、貧弱な数値配列インデックスを使用してそれらをバインドしています:(

私が探しているのは、おそらく次のようなものです。

$resource_var = (resource) $array_var;
4

4 に答える 4

9

私が探しているのは、おそらく次のようなものでしょう:

$resource_var = (resource) $array(var)

あなたはそれを決して見つけることはありません。リソースは PHP の内部データ型です。自分で PHP 拡張機能を作成してロードする場合 (およびその場合にのみ)、次のことができます。

$resource = array_resource_create($array);

次に、PHP 拡張機能mysqlがその関数内でそのリソースを作成します (たとえば、拡張機能が特定のリソース タイプを作成するため) array_resource_create。ただし、そのリソースを処理できる関数はこれまでのところ他にないため、これは役に立ちません。

于 2012-08-24T14:28:31.357 に答える
2

リソースを作成できません。ただし、ネイティブのものを使用できます。

たとえば、カールを試してみてください。

function makeResourceFromArray($array) {

    $resource = curl_init();

    curl_setopt($resource, CURLOPT_PRIVATE, serialize($array));

    return $resource;
}

function makeArrayFromResource($resource) {
    return unserialize(curl_getinfo($resource, CURLINFO_PRIVATE));
}

$resource = makeResourceFromArray(['name' => 'test']);

$array = makeArrayFromResource($resource);
于 2015-07-02T16:06:41.580 に答える
1

あなたが示す出力はそれ自体とは何の関係もありませんが、resource使用しているpretty-print関数は、指定した変数がデータベースの結果セットを指していることに気づき、結果を取得して表示します。

PHP で a が意味するのresourceは、変数が実際には PHP 内でデータを保持するのではなく、下位レベルのコード モジュール (この場合は、その参照を使用して結果を取得できる DB ライブラリ) で使用できるポインターまたは参照であることです。実行されたクエリの。

DB-resultset のような構造を持つ配列に対して、pretty-print を同じように表示したいだけの場合は、そのように pretty-print 関数を変更するだけで済みます。配列自体に何もする必要はありません。

于 2012-08-24T14:32:06.033 に答える