ホームページ > バックエンド開発 > PHPチュートリアル > PHPでのvar_exportとvar_dumpの違いの分析

PHPでのvar_exportとvar_dumpの違いの分析

小云云
リリース: 2023-03-21 12:00:01
オリジナル
1931 人が閲覧しました

この記事では主に php の var_export と var_dump の違いの分析について説明します。お役に立てれば幸いです。

var_dump (PHP 3 >= 3.0.5, PHP 4, PHP 5)

var_dump -- 変数に関する情報を出力します
Description

void var_dump ( mixed expression [, mixed expression [, ...]] )
ログイン後にコピー

この関数は、1 つ以上の式に関する構造を表示します。式の型と​​値が含まれます。配列は値を再帰的に展開し、インデントによって構造を示します。

コードは次のとおりです:

$data = array ('name' => 'abc', 'job' => 'programmer','a'=>array('aa','cc','bb'));
$data = var_dump($data,TRUE); 
echo $data;
ログイン後にコピー

出力形式は次のとおりです:

array(3) { 
["name"]=> 
string(3) "abc" 
["job"]=> 
string(10) "programmer" 
["a"]=> 
array(3) { 
[0]=> 
string(2) "aa" 
[1]=> 
string(2) "cc" 
[2]=> 
string(2) "bb" 
} 
} 
bool(true)
ログイン後にコピー

二var_export

(PHP 4 >= 4.2.0, PHP 5) 
var_export -- 输出或返回一个变量的字符串表示 
描述 
mixed var_export ( mixed expression [, bool return] )
ログイン後にコピー

この関数は、関数に渡された変数に関する構造情報を返します。これは、var_dump() に似ています。ただし、有効な PHP コードを表します。
関数の 2 番目のパラメーターを TRUE に設定することで、変数の表現を返すことができます。
EG:

var_export(array('a','b',array('aa','bb','cc'))) 这种与VAR_DUMP没什么区别; 
$var =var_export(array('a','b',array('aa','bb','cc')),TRUE),加上TRUE后,不会再打印出来,而是给了一个变量,这样就可以直接输出;
echo $var;此时输出来的形式与var_dump()打印的相似。
ログイン後にコピー

EG2

$data = array ('name' => 'abc', 'job' => 
'programmer','a'=>array('aa','cc','bb'));
$data = var_export($data,TRUE); echo $data;
ログイン後にコピー

出力形式は次のとおりです:

array ( 
'name' => 'abc', 'job' =>
 'programmer', 'a' => array 
 ( 0 => 'aa', 1 => 'cc', 2 => 'bb', ),
  )
ログイン後にコピー

以下は補足情報です:

error_log(var_export(yblog_mspconfiginit("ratings"),true));
ログイン後にコピー

問題の原因

var_export は正当な PHP コードを返す必要があります。 、var_export の戻り値 このコードは、変数を割り当てるための PHP コードとして直接使用できます。そして、この変数は var_export と同じタイプの値を取得します。ただし、変数の型がリソースの場合は単純にコピーすることができないので、var_export の変数がリソース型の場合、var_export は NULL を返します。 DBとの接続ができず、一日道を間違えてしまいました。

最後に、これが var_export と var_dump の違いの 1 つであることがわかりました


これは次のとおりです:

問題の原因

var_export は正当な PHP コードを返さなければなりません。つまり、var_export によって返されるコードは PHP として直接割り当てることができます。コード。 そして、この変数は var_export と同じ型の値を取得しますが、変数の型がリソースの場合、単純にコピーすることはできません。そのため、var_export の変数がリソース型の場合、var_export は NULL


インスタンス

error_log(var_export(yblog_mspconfiginit("ratings"),true));老是打印出yblog_mspconfiginit(“ratings”)的返回是NULL
ログイン後にコピー

を返します。結果:


コードは次のとおりです:

$res = yblog_mspconfiginit("ratings"); 
var_dump($res); 
var_export($res);
ログイン後にコピー

NULL 別の例:

コードは次のとおりです:

resource(1) of type (yahoo_yblog)
ログイン後にコピー

結果:

$res = fopen('status.html', 'r'); 
var_dump($res); 
var_export($res);
ログイン後にコピー

関連推奨事項:

php var_export関数の例の説明

var_export関数概要と Var_dump の比較

var_export と var_dump の使い方入門_PHP チュートリアル

以上がPHPでのvar_exportとvar_dumpの違いの分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート