本文目錄一覽:
- 1、小弟剛學PHP,求各位前輩幫忙看個代碼問題
- 2、說一下PHP中die()和exit()區別
- 3、php中die() exit() return 這3個語句的區別
- 4、PHP中的exit
- 5、php中exit和return的區別
- 6、PHP中的__destruct()析構函數是一個空方法,還是會執行什麼功能?
小弟剛學PHP,求各位前輩幫忙看個代碼問題
程序結束的時候會銷毀變數,下面的代碼可以確認不是變數作用域完成,而是結束:
?php
class person {
var $name;
var $sex;
var $age;
function say() {echo ‘我叫:’.$this-name.’ 性別:’.$this-sex.’ 我今年’.$this-age.’歲了br’;}
function __construct($name=””,$sex=”女”,$age=”21″) {
$this-name=$name;
$this-sex=$sex;
$this-age=$age;
}
function __destruct() {echo ‘再見,別忘了,我叫:’.$this-name.’br’;}
}
$zzy = new person(“章子怡”);
echo $zzy-say();
$x=”xxx”;
echo “$xbr\n”;
?
說一下PHP中die()和exit()區別
1、用法習慣不同,當傳遞給exit和die函數的值為0時,意味著提前終止腳本的執行,通常用exit()這個名字。
2、名字不同,其實PHP手冊已經說過「die — Equivalent to exit().This language construct is equivalent to exit(). 」兩者只是別名關係,除此之外完全一樣。
3、源碼的處理方式不同,無論是別名函數還是別名語言結構,從實際效果角度講,都是一樣的,但是源碼的處理方式還是有一定的差異。
擴展資料:
die()和exit()差異實例:
zend_language_parser.c中,定義了一個宏
#define T_EXIT 300
還定義了一個enum,裡面也有
enum yytokentype {
…
T_EXIT = 300,
….
}
這裡告訴我們,T_EXIT這個token,它的code是300。
再看zend_language_scanner.l,其中有這麼幾行代碼。
ST_IN_SCRIPTING」exit」 {
return T_EXIT;
}
ST_IN_SCRIPTING」die」 {
return T_EXIT;
}
很明顯,php做詞法分析時,無論遇到exit還是die,都會返回T_EXIT這個token。從這裡酒可以證明,die和exit,再php內部處理是完全一樣的。
也可以用下列php代碼來確定:
?php
var_dump(token_get_all(「?php die;exit;?」));
返回的結果中die和exit對應的token code,都是300。
參考資料:
PHP exit() 函數-w3school
PHP die() 函數-w3school
php中die() exit() return 這3個語句的區別
die()停止程序運行,輸出內容
exit是停止程序運行,不輸出內容
return是返回值
補充 一下,die 是失敗 後輸出,另外 exit 後面 加個 () 也是可以輸出內容的!return 是返回,也有終止程序的作用。php 遇到,return 即不運行 後面代碼。但終止有本質區別!
PHP中的exit
exit是一個語言結構, 可以exit; 也可以exit(); 還可以exit(‘abc’);
而它有一個函數別名, 注意它是函數而不是語言結構了, die(); 它必須有括弧跟著了, 可以空也可以不空, 但必須有括弧因為它是函數不是語言結構了
另外exit並不一定就讓程序結束, 因為可以使用register_shutdown_function註冊一個或多個exit之後才執行的函數
並且還有對象的析構函數也會在exit之後執行, 所以並不是exit就可以讓一切完結
php中exit和return的區別
die()停止程序運行,輸出內容
exit是停止程序運行,不輸出內容
return是返回值die是遇到錯誤才停止exit是直接停止,並且不運行後續代碼,exit()可以顯示內容。return就是純粹的返回值了,但是也不會運行後續代碼
PHP中的__destruct()析構函數是一個空方法,還是會執行什麼功能?
同其他語言中的析構函數功能差不多,PHP中析構函數也是執行一些清理工作(如果非要加入其它的一些事情,那就另說了),其實PHP在腳本執行結束後就會銷毀一切能夠銷毀的東西,不會浪費一丁點資源,沒有析構的話也沒什麼關係了。但是,在腳本執行中,我們也會執行一些命令,讓某些對象生命結束,如果沒有析構,就只能由垃圾收集機制來運行了,這就浪費了一些資源。由此,顯式析構的作用就出來了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/295128.html