ホームページ  >  記事  >  バックエンド開発  >  PHPコード監査(1)-----デバッグ機能

PHPコード監査(1)-----デバッグ機能

不言
不言オリジナル
2018-04-03 14:13:581731ブラウズ

この記事の内容は、デバッグ機能を共有することです。興味のある友人は参照してください。また、助けが必要な学生に参考にすることもできます。


  • 最も基本的な 2 つの出力方法は echo です。そして print

/**
*echo 是一个语言结构,有无括号均可使用:echo 或 echo()
*///打印字符串echo "hello";
echo("hello");//打印变量$text="learn php";
echo $text;
echo($text);

/**
print 也是语言结构,有无括号均可使用:print 或 print()
*///打印字符串print "hello";
print("hello");//打印变量$text="learn php";
print $text;
print($text);


echo と print の違い:

echo - 複数の文字列を出力可能
print - 1 つの文字列のみを出力でき、常に 1 を返します
ヒント: print より echo値を返さないため、若干高速になります


  • 二重引用符と一重引用符の違い

二重引用符は変数を解析します
一重引用符は変数を解析しません

 $str1="hello"; $str2="php"; echo "$str1";//输出:hello echo '$str2';//输出:$str2
  • print_r()関数

print_r() は、変数に関するわかりやすい情報を表示します。文字列、整数、または浮動小数点が指定された場合、変数値自体が出力されます。配列が指定された場合、キー

と要素は特定の形式で表示されます。オブジェクトは配列に似ています。
print_r() は配列ポインターを最後に移動することに注意してください。ポインタを先頭に戻すには、reset() を使用します。

//打印string$str1="hello";
print_r($str1);
print_r("hello");//打印integer$num=1024;
print_r($num);
print_r(1024);//打印float$num=1024.1024;
print_r($num);
print_r(1024.1024);//打印array
 $cars=array("Volvo","BMW","Toyota");
 print_r($cars);/*打印结果
Array ( [0] => Volvo [1] => BMW [2] => Toyota )
*/

    *var_dump() 関数
  • var_dump() メソッドは、変数の型と長さを決定し、変数の値を出力します。変数に値がある場合、出力は変数の値であり、データを返します。タイプ。正確なデバッグのために。

    式のタイプや値など、1 つ以上の式に関する構造情報を表示します。配列は値を再帰的に展開し、インデントによって構造を示します。

     $cars=array("Volvo","BMW","Toyota");
     var_dump($cars); /* 打印结果
     E:\wamp64\www\test.php:56:
    array (size=3)
      0 => string 'Volvo' (length=5)
      1 => string 'BMW' (length=3)
      2 => string 'Toyota' (length=6)
     */
    
    
     $n=null;
     var_dump($n); /*打印结果
     E:\wamp64\www\test.php:59:null
     */
  • var_export() 関数

    var_export() 関数は、この関数に渡される変数に関する構造情報を返します。ただし、返される表現が正当な PHP コードである点が異なります。 var_export は有効な PHP コードを返す必要があります。つまり、var_export によって返されるコードは、PHP コードとして変数に直接割り当てることができます。 そして、この変数は var_export と同じタイプの値を取得します。

次の 3 つの点に注意してください:

1.var_export() はデータを保存するために常に構造化された形式を保持します 2.ただし、特に覚えておいてください: この時点での変数値の型はすでに文字列 ($var) です。 )、内部の値を配列の形式で取り出すことができなくなります
3. var_export はリソース型変数に対して NULL を出力します

 $cars=array("Volvo","BMW","Toyota");
 var_export($cars);
 /*打印结果
 array ( 0 => 'Volvo', 1 => 'BMW', 2 => 'Toyota', )
 */

  • debug_zval_dump() 関数

    debug_zval_dump() の出力結果は次のようになります。 var_dump、唯一追加されたもの。値は refcount で、変数が参照された回数を記録します。これは、PHP のコピー オン ライト メカニズムの重要な機能です。最も基本的な 2 つの出力メソッド echo と print の print の違い:

    echo - 複数の文字列を出力可能
  • print - 1 つの文字列のみを出力でき、常に 1 を返す
ヒント: echo は print よりわずかに高速です。任意の値を返す

  • 二重引用符 一重引用符との違い

  • 二重引用符は変数を解決します

    一重引用符は変数を解決しません

     $cars=array("Volvo","BMW","Toyota");
     debug_zval_dump($cars);
     /*打印结果  array(3) refcount(2){ [0]=> string(5) "Volvo" refcount(1) [1]=> string(3) "BMW" refcount(1) [2]=> string(6) "Toyota" refcount(1) }
     */

  • print_r()関数

print_r() が表示されます変数に関するわかりやすい情報。文字列、整数、または浮動小数点が指定された場合、変数値自体が出力されます。配列が指定された場合、キー

と要素は特定の形式で表示されます。オブジェクトは配列に似ています。

print_r() は配列ポインターを最後に移動することに注意してください。ポインタを先頭に戻すには、reset() を使用します。

/**
*echo 是一个语言结构,有无括号均可使用:echo 或 echo()
*///打印字符串echo "hello";
echo("hello");//打印变量$text="learn php";
echo $text;
echo($text);


*var_dump() 関数
    var_dump() メソッドは、変数の型と長さを決定し、変数の値を出力します。変数に値がある場合、出力は変数の値であり、データを返します。タイプ。正確なデバッグのために。
  • 式のタイプや値など、1 つ以上の式に関する構造情報を表示します。配列は値を再帰的に展開し、インデントによって構造を示します。

    /**
    print 也是语言结构,有无括号均可使用:print 或 print()
    *///打印字符串print "hello";
    print("hello");//打印变量$text="learn php";
    print $text;
    print($text);

var_export() 関数

var_export() 関数は、この関数に渡される変数に関する構造情報を返します。ただし、返される表現が正当な PHP コードである点が異なります。 var_export は有効な PHP コードを返す必要があります。つまり、var_export によって返されるコードは、PHP コードとして変数に直接割り当てることができます。 そして、この変数は var_export と同じタイプの値を取得します。
  • 次の 3 つの点に注意してください:

  • 1.var_export() はデータを保存するために常に構造化された形式を保持します
2.ただし、特に覚えておいてください: この時点での変数値の型はすでに文字列 ($var) です。 )、中の値を配列の形で取り出すことができなくなりました

3. var_exportはリソース型変数に対してNULLを出力します

 $cars=array("Volvo","BMW","Toyota");
 var_export($cars);
 /*打印结果
 array ( 0 => 'Volvo', 1 => 'BMW', 2 => 'Toyota', )
 */

  • debug_zval_dump()函数
    debug_zval_dump() 输出结果跟 var_dump 类似,唯一增加的一个值是 refcount,就是记录一个变量被引用了多少次,这是 php 的 copy on write (写时复制) 的机制的一个重要特点。

 $cars=array("Volvo","BMW","Toyota");
 debug_zval_dump($cars);
 /*打印结果  array(3) refcount(2){ [0]=> string(5) "Volvo" refcount(1) [1]=> string(3) "BMW" refcount(1) [2]=> string(6) "Toyota" refcount(1) }
 */
  • exit()函数
    终止程序运行

相关推荐:

PHP调试函数和日志记录函数分享,调试日志记录_PHP教程

以上がPHPコード監査(1)-----デバッグ機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。