непонятное условие

sunyang

Мастер
Регистрация
25 Апр 2009
Сообщения
440
Реакции
30
Не пойму почему в уловии - если не определена переменная...
вот в этом скрипте:
PHP:
if(!empty($_POST['submit']) && $_POST['submit']=='login')
{
$user_name = $_POST['name'];
$user_pass = $_POST['pas'];
$ses = new Users;
$ses->setSession ($user_name, $user_pass);

$ses->checkUser();


}

include ("tpl/top.php");
?>

<h4>Вход в авторский раздел</h4>

<? actNote() ?>
<form method="post">
<input type="hidden" name="submit" value="login">
<p>E-mail: <input type="text" name='name' size=25>
<br>Пароль <input type="password" name='pas' size=25>
<input type="submit" name="logon" value="Войти">
</form>

Не понятно почему в этом условии
PHP:
if(!empty($_POST['submit']) && $_POST['submit']=='login')

!empty($_POST['submit'] - т.е. если переменная данных формы не определена, то выполняем функцию обработки формы.

Как так? почему написали !empty($_POST['submit'] а не empty($_POST['submit'] (без восклицательного знака) ?
 
empty() возвращает true, если переменная НЕ определена, и false - если определена.
!empty() возвратит true если переменая определена, и false - если НЕ определена.
 
empty() возвращает true, если переменная НЕ определена, и false - если определена.
!empty() возвратит true если переменая определена, и false - если НЕ определена.

а чем empty() отличается от isset() ?
 
пустая и непроинициализованная переменные - это разные состояния
 
а чем empty() отличается от isset() ?

empty() возвращает TRUE если переменная не существует или имеет пустое значение
isset() возвращает TRUE только если переменная существует, не зависимо от того, пустая она или нет

например:
PHP:
$a = '';
$b = 'some text';

isset($a); //true
empty($a); //true

isset($b); //true
empty($b); //false
 
а чем empty() отличается от isset() ?

Вот тут

Вообще empty это логическое отрицание конструкции if($x)
А isset() это логическое отрицание конструкции is_null()
То есть там где is_null() истина , isset() ложь, и наоборот.
Очень легко запомнить )
 
isset возращает FALSE, если переменная === null, а empty наоборот true
 
Назад
Сверху