Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
использовать имя переменной в качестве выражения в выражении if и смело предполагать, что если значение не определено или пустое, то значение будет false
необходима функция isset
смело предполагать, что если значение… пустое, то значение будет false
функция isset
$arr = ['', 0, '0', false, NULL];
echo "Num\tEmp\tSet\tNul\tBool\n";
for($i = 0; $i < 5; $i++) {
echo $i, "\t", empty($arr[$i]), "\t", isset($arr[$i]), "\t", is_null($arr[$i]), "\t", boolval($arr[$i]), "\n";
}
Всегда предпочитал !empty().
значение не определено или пустоечто собственно и процитировал 027 в своём первом комментарии.
Даже при использовании тернарного оператора необходима функция isset
$value = isset($_GET['limit']) ? $_GET['limit'] : 10;и второй момент не подходит если я хочу чтобы значение 0 например присвоилось и не проигнорировалось и взялось дефолтное…
const value = 0 || false || 'hello';
console.log(value); // hello
Это не будет работать в PHP, и эквивалентный код на PHP установит значение 0
const value = 0 || false || 'hello';
console.log(value);
VM114:2 helloonotole@home:~$ php
<?php
$value = 0 || false || 'hello';
var_dump($value);
print_r(phpversion());
bool(true)
7.2.7-0ubuntu0.18.04.2Константные массивы
Когда люди обсуждают изменения в PHP7
предлагает два разных объявления типов
define('COLOR_RED', '#f44141');
define('COLOR_BLUE', '#4286f4');
define('COLOR_GREEN', '#1ae01e');
define('COLOR_PURPLE', '#f309f7');
define('COLOR_ORANGE', '#ef7700');
class Colour
{
public const RED = '#f44141';
public const BLUE = '#4286f4';
public const GREEN = '#1ae01e';
public const PURPLE = '#f309f7';
public const ORANGE = '#ef7700';
}
И не «сообщение об ошибке», а исключение.
try {
require __DIR__ . '/any-bad-code.php';
} catch (\Error $e) {
echo $e;
}
\var_dump('ALL OK');
Нормальные программисты давно уже обсуждают изменения в PHP 8.
Групповые Use Declarations
Обзор моих любимых фич PHP7