Справочники, инструменты, документация

PHP: Условные операторы (cниппеты)

Коллекция готовых полезных функций и коротких сниппетов для работы с условными операторами.

Операции сравнения

  • == - равнозначны ли значения двух переменных
  • === - одинаковы ли как значения, так и типы двух переменных
  • > - больше ли первое значение, чем второе
  • >= - верно ли, что первое значение не меньше второго
  • < - меньше ли первое значение, чем второе
  • <= - верно ли, что первое значение не больше второго
  • != - не равны ли значения двух переменных
  • !== - не одинаковы ли значения или типы данных двух переменных
  • if - если
  • or- или
  • and- и
  • else - ещё
  • empty - пусто
  • isset - установлено
  • die - пcевдоним функции exit()

если if ложно, то выполняется elseif или следующий if

если все if ложны, то выполняется else

Id

if(!empty($url_id[2]))
{
 $id = $url_id[2];

 if(!ereg("^[0-9]+$", $id)) 
 {
 header('Location: /404');
 exit();
 }
}

Проверка форм

if(isset($_POST['submit']))
{
 echo 'Кнопка нажата';
}

Ошибки

if(!empty($ups))
{
 $ups = '<b>'.$ups.'</b>';
 echo $ups;
}

Не ошибки

if(!empty($oke))
{
 $oke = '<b>'.$oke.'</b>';
 echo $oke;
}

Логин

if(!empty($_POST['login']))
{
 $login = trim($_POST['login']);

 if(!ereg("^[A-za-z0-9]+$", $login)) 
 {
  $ups .= 'Вводите логин английскими буквами или цифрами<br>';
 }
 elseif(strlen($login) < 2) 
 {
  $ups .= 'Логин короче 2-х символов ('.strlen($login).')<br>';
 }
 elseif(strlen($login) > 255) 
 {
  $ups .= 'Логин длинее 255-ти символов ('.strlen($login).')<br>';
 }
}
else{
 $ups .= 'Введите логин<br>';
}

Email

if(!empty($_POST['email']))
{
 $email = strtolower(trim($_POST['email']));

 if(!preg_match("/^([a-z,0-9])+@([a-z,0-9])+(.([a-z,0-9])+)+$/", $email)) 
 {
  $ups .= 'Неверный формат e-mail<br>';
 }
 elseif(strlen($email) < 7) 
 {
  $ups .= 'E-mail короче 7-ми символов ('.strlen($email).')<br>';
 }
 elseif(strlen($email) > 50) 
 {
  $ups .= 'E-mail длинее 50-ти символов ('.strlen($email).')<br>';
 }
}
else{
 $ups .= 'Введите e-mail<br>';
}

Телефон

if(!empty($_POST['tel']))
{
 $tel = trim($_POST['tel']);

 if(!ereg("^[0-9' + -]+$", $tel)) 
 {
  $ups .= 'Вводите номер домашнего телефона только цифрами<br>';
 }
 elseif(strlen($tel) < 7) 
 {
  $ups .= 'Номер домашнего телефона короче 7-ми символов ('.strlen($tel).')<br>';
 }
 elseif(strlen($tel) > 15) 
 {
  $ups .= 'Номер домашнего телефона длинее 15-ти символов ('.strlen($tel).')<br>';
 }
}

Мобильный

if(!empty($_POST['telmob']))
{
 $telmob = trim($_POST['telmob']);

 if(!ereg("^[0-9' + -]+$", $telmob)) 
 {
  $ups .= 'Вводите номер мобильного телефона только цифрами<br>';
 }
 elseif(strlen($telmob) < 7) 
 {
  $ups .= 'Номер мобильного телефона короче 7-ми символов ('.strlen($telmob).')<br>';
 }
 elseif(strlen($telmob) > 17) 
 {
  $ups .= 'Номер мобильного телефона длиннее 17-ти символов ('.strlen($telmob).')<br>';
 }
}

Пароль

if(!empty($_POST['pass']))
{
 $pass = trim($_POST['pass']);
 $pass2 = trim($_POST['pass2']);

 if(!ereg("^[A-Za-z0-9'-]+$", $pass)) 
 {
  $ups .= 'Вводите пароль английскими буквами и/или цифрами<br>';
 }
 elseif(strlen($pass) < 6) 
 {
  $ups .= 'Пароль короче 6-ти символов<br>';
 }
 elseif(strlen($pass) > 17) 
 {
  $ups .= 'Пароль длинее 17-ти символов<br>';
 }
}
else{
 $ups .= 'Введите пароль<br>';
}
if($_POST['pass'] != $_POST['pass2'])
{
 $ups .= 'Пароли не совпадают<br>';
 $pass = '';
 $pass2 = '';
}

Антиспам

if(empty($_POST['robot']))
{
 $ups .= 'Поставьте птичку, что Вы не робот<br>';
}
else{
 $robot = 'checked="checked"';
}

Проверка сайта

elseif(!preg_match("/^[a-z,0-9]+\.[a-z,0-9]+$/", $site))
elseif(!ereg("^[a-z,0-9.' -]+$", $site))

Switch

// выполняю действие в зависимости от значения переменной
 $rezjim = 'Включить';

 switch($rezjim)
 {
 case 'Включить': //случай
 echo ''; //действие
 break;

 case 'Выключить': //случай
 echo ''; //действие
 break;

 default: //иной случай
 echo 'Выберите действие'; //действие
 break;
 }
$action = 'JUMP';

switch ($action) {
 case 'JUMP':
 echo "Мне нравится прыгать.<br>";
 case 'SWEEM':
 echo "Я люблю плавать.<br>";
 case 'FLY':
 echo "Хотел бы я научиться летать.<br>";
}

Запись для внедрения в html

Кроме стандартного if () elseif () else есть еще такая запись для внедрения в html:

<?php if ($login === null): ?>
 <a href="/login.php">Авторизуйтесь</a>
<?php else: ?>
 Добро пожаловать, <?= $login ?>
 <br>
 <a href="/logout.php">Выйти</a>
<?php endif; ?>

Короткая запись if else

условие ? если да : если нет

$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';

Объединяющая операция аналог if elseif else

условие ?? если да ?? иначе это ?? иначе это

$username = $_GET['user'] ?? $_POST['user'] ?? 'nobody';