php代碼審計(一)-----調試函數

來源:互聯網
上載者:User
本篇文章給大家分享的內容是調試函數,有興趣的朋友可以看一下,也可以給有需要協助的同學一點參考


  • 兩種最基本的輸出方法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
提示:echo 比 print 稍快,因為它不返回任何值

  • 雙引號和單引號的區別

雙引號解析變數
單引號不解析變數

 $str1="hello"; $str2="php"; echo "$str1";//輸出:hello echo '$str2';//輸出:$str2
  • print_r() 函數

print_r() 顯示關於一個變數的易於理解的資訊。如果給出的是 string、integer
或 float,將列印變數值本身。如果給出的是 array,將會按照一定格式顯示鍵
和元素。object 與數組類似。
記住,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()方法,判斷一個變數的類型與長度,並輸出變數的數值,如果變數有值,則輸出是變數的值,並返回資料類型。用於精確調試。
    顯示關於一個或多個運算式的結構資訊,包括運算式的類型與值。數組將遞迴展開值,通過縮排顯示其結構。

 $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() 函數返回關於傳遞給該函數的變數的結構資訊,它和 var_dump() 類似,不同的是其返回的表示是合法的 PHP 代碼。var_export必須返回合法的php代碼, 也就是說,var_export返回的代碼,可以直接當作php代碼賦值個一個變數。 而這個變數就會取得和被var_export一樣的類型的值。

注意三點:
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()函數
    終止程式運行

  • 兩種最基本的輸出方法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
提示:echo 比 print 稍快,因為它不返回任何值

  • 雙引號和單引號的區別

雙引號解析變數
單引號不解析變數

 $str1="hello"; $str2="php"; echo "$str1";//輸出:hello echo '$str2';//輸出:$str2
  • print_r() 函數

print_r() 顯示關於一個變數的易於理解的資訊。如果給出的是 string、integer
或 float,將列印變數值本身。如果給出的是 array,將會按照一定格式顯示鍵
和元素。object 與數組類似。
記住,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()方法,判斷一個變數的類型與長度,並輸出變數的數值,如果變數有值,則輸出是變數的值,並返回資料類型。用於精確調試。
    顯示關於一個或多個運算式的結構資訊,包括運算式的類型與值。數組將遞迴展開值,通過縮排顯示其結構。

 $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() 函數返回關於傳遞給該函數的變數的結構資訊,它和 var_dump() 類似,不同的是其返回的表示是合法的 PHP 代碼。var_export必須返回合法的php代碼, 也就是說,var_export返回的代碼,可以直接當作php代碼賦值個一個變數。 而這個變數就會取得和被var_export一樣的類型的值。

注意三點:
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()函數
    終止程式運行

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.