Loading...
Обучение/Помощь новичкам | поясните кусок кода
PhpStorm (04.08.2018 в 23:13)
PasichNIK (04.08.2018 в 22:36)
' . (empty($user['live']) ? '' : $user['live']) . '

как используеться условие? поясните



в php 7 и выше это можно записать ещё круче


' . ($user['live'] ?? null) . '


Это то же самое, что


<?php
if(empty($user['live'])) {
$var = null;
} else {
$var = $user['live'];
}
echo $var;



Не то же самое. При, например, $user['live'] = 0 тернарный оператор выдаст значение переменной (т.е. 0), а конструкция с empty вернет в if true и получим на выходе null.
________
посл. ред. 04.08.2018 в 23:58; всего 1 раз(а); by 32610535
d1nka (04.08.2018 в 22:40)
Null скорей всего по правильному , а не пустоту

Null в 7.2 уже вроде не используется
32610535 (04.08.2018 в 23:51)
PhpStorm (04.08.2018 в 23:13)
PasichNIK (04.08.2018 в 22:36)
' . (empty($user['live']) ? '' : $user['live']) . '

как используеться условие? поясните



в php 7 и выше это можно записать ещё круче


' . ($user['live'] ?? null) . '


Это то же самое, что


<?php
if(empty($user['live'])) {
$var = null;
} else {
$var = $user['live'];
}
echo $var;



Не то же самое. При, например, $user['live'] = 0 тернарный оператор выдаст значение переменной (т.е. 0), а конструкция с empty вернет в if true и получим на выходе null.


понагляднее можно, а то каждый по своему понимает, что значит на выходе получим null, если либо false либо true
SNEG, Прекрасно используется. Запретили передавать null в функцию get_class, да и только.
PhpStorm (05.08.2018 в 00:31)
32610535 (04.08.2018 в 23:51)
PhpStorm (04.08.2018 в 23:13)
PasichNIK (04.08.2018 в 22:36)
' . (empty($user['live']) ? '' : $user['live']) . '

как используеться условие? поясните



в php 7 и выше это можно записать ещё круче


' . ($user['live'] ?? null) . '


Это то же самое, что


<?php
if(empty($user['live'])) {
$var = null;
} else {
$var = $user['live'];
}
echo $var;



Не то же самое. При, например, $user['live'] = 0 тернарный оператор выдаст значение переменной (т.е. 0), а конструкция с empty вернет в if true и получим на выходе null.


понагляднее можно, а то каждый по своему понимает, что значит на выходе получим null, если либо false либо true


Твой тернарный оператор вернет null вместо значения переменной ТОЛЬКО если переменная не обьявлена и если она сама равна null. empty же в твоем условии присвоит $var=null при значениях $user['live']: 0, '', '0', null, и если переменная не обьявлена. Если все еще непонятно (я знаю, что плохо умею обьяснять) - распишу все на подробных примерах.
________
посл. ред. 05.08.2018 в 00:43; всего 2 раз(а); by 32610535
32610535,

Ну так мы же в любом случае передаём NULL логикой кода :-D
PhpStorm, да, тернарный оператор отработает как надо в данном случае. Я просто указал на неточность с твоим сравнением данного оператора через ?? с empty, чтобы тебя это не подвело в будущем:)
32610535 (05.08.2018 в 00:48)
PhpStorm, да, тернарный оператор отработает как надо в данном случае. Я просто указал на неточность с твоим сравнением данного оператора через ?? с empty, чтобы тебя это не подвело в будущем:)


ну так тут можно дальше прикалываться :-D

$a = 0;
if (empty($a)) $a = null;// true, так как переменная пуста

$a = 0;
$a = $a ?? null;// true, так как переменная не равна null

и чё делать? :-D

если всегда - true
________
посл. ред. 05.08.2018 в 01:01; всего 1 раз(а); by PhpStorm

$a = 0;
$a = $a ?: null; //теперь $a = null.
Вообще тернарный оператор ?? хорошо использовать в связке с каким-нибудь $default значением, которое надо вернуть, если переменной вообще нету. Вот простейший пример:

//функция будет возвращать $_POST[$key].
//Можем пихнуть вторым параметром специфичный $default, если нужно.

function getPostVar($key, $default = null)
{
return $_POST[$key] ?? $default;
}

________
посл. ред. 05.08.2018 в 01:14; всего 3 раз(а); by 32610535
Онлайн: 5
Время:
Gen. 0.0895
(c) Bym.Guru 2010-2025