2016-08-02 90 views
-2

有什么区别,哪个更好?如何在PHP中正确使用isset函数?

这一个:

if(isset($_POST['name'])){ 

} 

或者这一个:

$name = $_POST['name']; 
if(isset($name)){ 

} 

我想知道,如果有两个代码之间的差异,这是更有效地使用。先谢谢你!

+0

第一个是正确的,后者将导致一个错误,如果它不是POST阵列 – RamRaider

+0

定义谢谢@RamRaider。现在我明白了。非常感谢。 – Jjjjjjjjjj

回答

3

嗨第一个是正确的

if(isset($_POST['name'])){ 

} 

这将检查$_POST['name']设置与否。

$name = $_POST['name']; 
if(isset($name)){ 

} 

这将检查$name设置与否。如果因为$_POST['name']是否具有价值或者您没有声明$name而进入内部。所以这会给出错误的结果

+0

非常感谢! – Jjjjjjjjjj

+0

@Jjjjjjjjjj欢迎:) – user1234

+1

@Jjjjjjjjjj如果一个答案解决了你的问题,不要忘记upvote并选择它。 – BeetleJuice

0

这两个代码会做同样的事情。他们都会检查是否设置了变量。

在这两种情况下,您将检查是否设置了$_POST['name']。如果你正在寻找效率,你应该使用第一个,因为创建新的变量和处理数据将始终使用更多的资源。

+0

不,他们不会,如果变量未定义,后者将返回一个错误。 – 2016-08-02 05:18:38

+0

当然,但这不是他的问题的重点。他想知道这两个条件之间有什么区别,哪一个更有效。实际上,是的,他们也会这样做:检查是否设置了$ _POST ['name']。 – tomfl

+0

你显然有一个不同于宇宙其他部分的“相同”的定义。 – 2016-08-02 05:34:51

2

更好:

$name = isset($_POST['name']) ? $_POST['name'] : 'empty';