ホームページ > バックエンド開発 > PHPチュートリアル > php_PHP チュートリアルでの json_decode と var_export のパラメーターの使用法

php_PHP チュートリアルでの json_decode と var_export のパラメーターの使用法

WBOY
リリース: 2016-07-13 10:56:03
オリジナル
1035 人が閲覧しました

この記事は主に、php での json_decode と var_export の 2 番目のパラメーターの使用法について説明しています。php での json_decode と var_export の使用法を知る必要がある友人も参照してください。

json_decode と var_export には両方とも 2 番目のパラメータがあります。T_T しかも、この var_export 関数については、まだ基礎がしっかりしていません。

json_decode
(PHP 5 >= 5.2.0、PECL json:1.2.0-1.2.1)
json_decode — JSON 形式の文字列をデコードします
説明
混合 json_decode ( string $json [, bool $assoc ] )
JSON 形式の文字列を受け入れ、それを PHP 変数に変換します

以前は、ajax 処理のデータ形式として json が使用されていましたが、現在では、パートナーが提供するインターフェイスによって返されるデータ形式は json であり、当時はまだ、これはオブジェクトを直接返すものだと思っていました。 JavaScriptで使用されますが、「このオブジェクトをphpで配列に変換するには?」で使用されます。長い間頭を悩ませた後、マニュアルを読むことにしました。見ただけではわかりませんが、これを true として渡すと、デコードされたデータが配列になることがわかります。

配列が0から始まる連続配列の場合、json_encodeの結果は[]で囲まれた文字列になります

配列が0から始まらない配列や連続していない配列の場合、json_encodeの結果は{}で囲まれたkey-valueパターンの文字列となります

{"1":1,"2":1}2. 文字列がパターン [1,1,1] の場合、json_decode によって解析された結果はデフォルトで配列になります。 文字列がパターン {"1":1,"2":1} にある場合、json_decode によって解析された結果はデフォルトでオブジェクトになります。この時点で、その 2 番目のパラメーターを true に設定して強制的に返すことができます。配列
コードは次のとおりです コードをコピー

$test = array();
$test[] = 1;
$test[] = 1;
$test[] = 1;
DEBUG(json_encode($test)); 結果:
[1,1,1]


$test = 配列(); $test[] = 1; $test[] = 1; $test[] = 1; unset($test[0]); DEBUG(json_encode($test));




結果:

3. 上記の状況は、JSON エンコードを使用する場合は 2 番目のパラメーターを true に設定することが推奨されるため、PHP が 1 次元配列と 2 次元配列を区別できないために発生します。

-------------------------------------------------- ----------------------------------

再構築したデータをファイルに保存したいのですが、以前の方法ではシリアライズして取り出したときにデシリアライズをしていましたが、配列を直接ファイルに保存できないか考えました。

しかし、配列、特に連想配列の形式を記述するのは非常に難しく、添え字についてすべて知っていたとしても、死ぬほど疲れてしまうのではないでしょうか。 Googleに聞いてみましょう。

var_export

(PHP 4 >= 4.2.0、PHP 5)

var_export — 変数の文字列表現をエクスポートまたは返します

説明
混合 var_export (混合 $expression [, bool $return ] )

この関数は、関数に渡された変数に関する構造情報を返します。返される表現が正当な PHP コードである点を除けば、var_dump() と似ています。
関数の 2 番目の引数を TRUE に設定することで、変数の表現を返すことができます。
あなたは見ましたか?私はこれまで var_dump を使っていましたが、こんな機能があるとは知りませんでした。


コードは次のとおりです


コードをコピー

$handle = fopen($file_name, 'w+'); fclose($handle);。
fwrite($handle,'");

結果を使用すると、やはり問題が発生します。関数は配列の内容をページに出力しますが、ファイルには何もありません。それだけなら、なぜそれを使用する必要があるのでしょうか?ページ上に表示されているので、

<pre class="brush:php;toolbar:false">を使用しています。落ち込んでいましたが、よく見てみると、この関数にも json_decode と同じ機能を持つ 2 番目のパラメータがあることが判明しました。私の不注意はまだ深刻のようです。 
<p> </p>
ログイン後にコピー
コードは次のとおりです コードをコピー
$handle = fopen($file_name, 'w+');
fwrite($handle,'");
fclose($handle);



コードは次のとおりです コードをコピー

$res = yblog_mspconfiginit("評価");
var_dump($res);
var_export($res);

/*結果:タイプ (yahoo_yblog)NULL のリソース(1)*/

別の例:

コードは次のとおりです コードをコピー


$res = fopen('status.html', 'r');
var_dump($res);
var_export($res);

/*結果:タイプ (ストリーム)NULL のリソース(2)*/

var_export は正当な PHP コードを返す必要があります。つまり、var_export によって返されるコードは、PHP コードとして変数に直接割り当てることができます。 そして、この変数は var_export と同じタイプの値を取得します

ただし、変数の型がリソースの場合は単純にコピーできないため、var_exportの変数がリソース型の場合は、var_exportはNULLを返します

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/632205.html技術記事この記事では主に、php での json_decode と var_export の 2 番目のパラメータの使用法について説明します。php での json_decode と var_export の使用法を知りたい人は参照してください。 関係ない...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート