這篇文章給大家分享的內容是調試函數,有興趣的朋友可以看一下,也可以給有需要幫助的同學一點參考
#兩個最基本的輸出方法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() 函數
和元素。 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 ) */
顯示關於一個或多個表達式的結構訊息,包括表達式的型別與值。數組將遞歸展開值,透過縮排顯示其結構。
$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_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() 輸出結果跟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) } */
終止程式執行
/** *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 - 只能輸出一個字串,並且總是傳回1
提示:echo 比print 稍快,因為它不會傳回任何值#雙引號解析變數
$str1="hello"; $str2="php"; echo "$str1";//输出:hello echo '$str2';//输出:$str2
#print_r() 顯示關於一個變數的易於理解的資訊。如果給定的是 string、integer
記住,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 ) */
$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_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()函数
终止程序运行
相关推荐:
以上是php程式碼審計(一)-----調試函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!