MalkoR
Гуру
(2691)
4 года назад
1. Да, можно, но это кривой код подавление ошибок.
2. Делать подавление в этом случае, мотивирует - уменьшить код? тогда смотри такой код:
$string = isset($string) ? $string.','.$val : $val;
никакого подавления и занимает одну строку.
3. Делать так - это вообще для не опытных. Когда нужно объединить строку каким то разделителем, есть implode(), для этого это функция и была сделана.
$params = [];
....
$params[] = $val;
$params[] = $val2;
$params[] = $val3;
...Сколько угодно пишешь в $params а в конце делаешь
$string = implode(",", $params);
Вообще забудь про подавление ошибок впринцепе как о возможности такой. По факту, примерно 15 лет программирую на php много, и подавление ошибок помню еще с php 3,4 версии, там нужно было, но начиная с 5-ой версии, об этой возможности вообще забыл, и 10 лет как не использую никогда. Тебе советую того же, забудь про эту возможность )
Есть простенький код (например внутри цикла foreach):
$val='test';
if (isset($string)){
$string.=','.$val;
}else{
$string=$val;
}
Его можно заменить на:
@$string.=$val;
И всё работает, ошибки не выведет. Но на сколько это целесообразно? Есть ли разница в быстродействии? какие есть недостатки у этой заглушки? Есть ли существенная разница между таким примером и другими вариантами?