2016-08-02 3 views
-2

В чем разница и что лучше?Как правильно использовать функцию isset в php?

Это один:

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

@Jjjjjjjjj приветствуется :) – user1234

+1

@Jjjjjjjjjj, если ответ решает вашу проблему, не забудьте поднять и выбрать его. – BeetleJuice

0

Эти два кода будут делать то же самое. Они будут проверять, установлена ​​ли переменная.

В обоих случаях вы проверите, установлен ли $_POST['name']. Если вы ищете эффективность, вы должны использовать первую, потому что создание новых переменных и обработка данных для них всегда будут использовать больше ресурсов.

+0

Нет, они не будут, последний вернет ошибку, если переменная не определена. –

+0

Конечно, но это не вопрос его вопроса. Он хочет знать, какая разница между этими двумя условиями и какая из них более эффективна. И на самом деле, да, они будут делать то же самое: проверьте, установлено ли $ _POST ['name']. – tomfl

+0

вы, очевидно, имеете другое определение «того же», что и остальная вселенная. –

2

еще лучше:

$name = isset($_POST['name']) ? $_POST['name'] : 'empty'; 
Смежные вопросы