Обучение/Помощь новичкам | поясните кусок кода
   
 
 
 
 
  
PhpStorm (04.08.2018 в 23:13)
PasichNIK (04.08.2018 в 22:36)
как используеться условие? поясните
в php 7 и выше это можно записать ещё круче
Это то же самое, что
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 скорей всего по правильному , а не пустоту
Null в 7.2 уже вроде не используется
DELETED 
	    5 августа 2018, в 0:31
   
		Delete
           32610535 (04.08.2018 в 23:51)
PhpStorm (04.08.2018 в 23:13)
PasichNIK (04.08.2018 в 22:36)
как используеться условие? поясните
в php 7 и выше это можно записать ещё круче
Это то же самое, что
Не то же самое. При, например, $user['live'] = 0 тернарный оператор выдаст значение переменной (т.е. 0), а конструкция с empty вернет в if true и получим на выходе null.
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)
как используеться условие? поясните
в php 7 и выше это можно записать ещё круче
Это то же самое, что
Не то же самое. При, например, $user['live'] = 0 тернарный оператор выдаст значение переменной (т.е. 0), а конструкция с empty вернет в if true и получим на выходе null.
понагляднее можно, а то каждый по своему понимает, что значит на выходе получим null, если либо false либо true
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
DELETED 
	    5 августа 2018, в 0:44
   
		Delete
           Ну так мы же в любом случае передаём NULL логикой кода
   
  
    
 
  
  
    
  
    PhpStorm, да, тернарный оператор отработает как надо в данном случае. Я просто указал на неточность с твоим сравнением данного оператора через ?? с empty, чтобы тебя это не подвело в будущем:)   
  
    
  
 
 
 
DELETED 
	    5 августа 2018, в 1:00
   
		Delete
           32610535 (05.08.2018 в 00:48)
PhpStorm, да, тернарный оператор отработает как надо в данном случае. Я просто указал на неточность с твоим сравнением данного оператора через ?? с empty, чтобы тебя это не подвело в будущем:)
PhpStorm, да, тернарный оператор отработает как надо в данном случае. Я просто указал на неточность с твоим сравнением данного оператора через ?? с empty, чтобы тебя это не подвело в будущем:)
ну так тут можно дальше прикалываться

$a = 0;
if (empty($a)) $a = null;// true, так как переменная пуста
$a = 0;
$a = $a ?? null;// true, так как переменная не равна null
и чё делать?

если всегда - true
________
посл. ред. 05.08.2018 в 01:01; всего 1 раз(а); by PhpStorm
$a = 0;
$a = $a ?: null; //теперь $a = null.
   
  
    
 
  
  
    
  
    Вообще тернарный оператор ?? хорошо использовать в связке с каким-нибудь $default значением, которое надо вернуть, если переменной вообще нету. Вот простейший пример:
________
посл. ред. 05.08.2018 в 01:14; всего 3 раз(а); by 32610535
  
 
 
   
  
 
  
//функция будет возвращать $_POST[$key].
//Можем пихнуть вторым параметром специфичный $default, если нужно.
function getPostVar($key, $default = null)
{
    return $_POST[$key] ?? $default;
}
   
  
    
________
посл. ред. 05.08.2018 в 01:14; всего 3 раз(а); by 32610535