当我填充变量时,我可以这样做吗?:
$type = isset( $_GET['type'] ) ? $_GET['type'] : die();
通过这样做,如果'type'不在请求中,我的函数将退出。这是使用die()的正确方法吗?
答案 0 :(得分:3)
如果您只想退出功能,请使用return
。但是,它不是表达式,因此您需要将其更改为if
语句:
if(!isset($_GET['type'])) {
return;
}
$type = $_GET['type'];
如果您确实希望整个页面停止执行,那么是的,这是正确的(但为了清晰起见,我仍然会使用if
。
答案 1 :(得分:1)
是和否。是的,因为你所做的事情在技术上是正确的,并且如果变量不存在则将终止脚本,但如果您想要测试代码,则不应该使用die
构造。 PHP是一种面向对象的语言(从版本5开始),并且是一种非常强大的语言。它支持使用您可能希望在此处使用的高级错误处理的异常。
答案 2 :(得分:1)
您无法使用die()
填充变量。 die()
终止您的代码。相反,您可以考虑以下代码:
$type = isset( $_GET['type'] ) ? $_GET['type'] : null;
答案 3 :(得分:1)
$type = isset( $_GET['type'] ) ? $_GET['type'] : die();
与if / else语句相同:
if ( isset( $_GET['type'] ) )
$type = $_GET['type'];
else
$type = die();
它的工作原理是因为die()
将被调用并将停止脚本执行,但这不是一个好习惯。如果$ _GET ['type']不存在,那么你可以选择使用if和else语句,只需调用die()
,如下所示。
if ( isset( $_GET['type'] ) )
$type = $_GET['type'];
else
die('type not found');
答案 4 :(得分:0)
die()函数将结束整个PHP进程,而不仅仅是退出你所在的函数。除此之外,代码依赖于PHP有点傻的事实。 die()严格来说应该是一个无效函数,但是你的调用取决于它返回某些东西 - 它做了什么,但不应该。
你真正想要的是一个简单的 if 声明:
if( ! isset($_GET['type']) )
return;
$type = $_GET['type'];
另一件事是,如果此代码在函数中,则$ type的值将不会被保留,除非它被声明为全局。