[кусочек кода] Как сделать красивее и компактнее?

Статус
В этой теме нельзя размещать новые ответы.

Setti

Новичок
[кусочек кода] Как сделать красивее и компактнее?

Как написать то же самое, чтобы было меньше кода? :)

PHP:
if (isset($my_arr[$key]))
		{
		$my_arr[$key]+= $val;
		}
		else
		{
		$my_arr[$key] = 0;
		$my_arr[$key] += $val;
		}
Вполне работает простое
PHP:
$my_arr[$key]+= $val;
Но выскакивает Notice
Как вариант можно
PHP:
@$my_arr[$key]+= $val;
но может есть красивее решение?
 

gonza

Новичок
Re: [кусочек кода] Как сделать красивее и компактнее?

PHP:
$my_arr[$key] = isset($my_arr[$key]) ? $my_arr[$key] + $val  :  $val ;
-~{}~ 22.02.07 12:37:

Автор оригинала: gonza
PHP:
$my_arr[$key] = isset($my_arr[$key]) ? $my_arr[$key] + $val  :  $val ;
опередил :D
 

jonjonson

Охренеть
Этот код читается лучше :-P
PHP:
if (array_key_exists($key, $my_arr)) {
    $my_arr[$key]+= $val;
} else {
    $my_arr[$key] = $val;
}
 

_sasha86_

Новичок
а мне нравятся конструкции if без кавычек :)

PHP:
if ( isset( $my_arr[$key] ) ):
    $my_arr[$key]+= $val; 
else:
    $my_arr[$key] = 0; 
    $my_arr[$key] += $val; 
endif;
 

Фанат

oncle terrible
Команда форума
Саша. Тебе стоило бы, во-первых, посмотреть в словаре значение слова "кавычки"
Во-вторых, поработать с каким-нибудь редактором чуть поумнее блокнота виндоус.
А в-третьих, посмотреть код, который писали до тебя. глядишь - что-то умное в нем увидишь. помимо "кавычек"
 

serglt

Анус, ой, Ахтунг
Вот наверно самый быстрый вариант по производительности :)
PHP:
if (!isset ($my_arr[$key]))
    $my_arr[$key] = 0;
$my_arr[$key]  += $val;
 

tf

крылья рулят
PHP:
if (isset($my_arr[$key])) { 
    $my_arr[$key] += $val; 
} else { 
    $my_arr[$key] = $val; 
}
Setti, зачем тебе этот бред?
Вот наверно самый быстрый вариант по производительности

if (!isset ($my_arr[$key]))
$my_arr[$key] = 0;
$my_arr[$key] += $val;
в случае ничего (!isset ($my_arr[$key])) зачем мы два раза обращаемся к $my_arr[$key]?
 

Фанат

oncle terrible
Команда форума
serglt
про самые быстрые варианты пишут только идиоты.
поздравляю с вступлением в должность.

и смайлик за отмазку не канает
 

betik

Новичок
Автор оригинала: serglt
$my_arr[$key] = isset ($my_arr[$key]) ? $my_arr[$key] + $val : $val;
Ребят, простите плз за тупой, наверно, вопрос и оффтоп...
Просветите пожалуиста как строятся конструкции с "?" !
Или ткните в ман, а то я сам найти не могу (не ман, а описание конструкции).
 

betik

Новичок
Спасиб...
http://ru.php.net/manual/ru/control-structures.alternative-syntax.php
Вот оно.
 

Vladson

Сильнобухер
Ну и от меня вариантик :)
PHP:
$my_arr[$key] = isset ($my_arr[$key]) ? $my_arr[$key] : 0;
$my_arr[$key]  += $val;
(хотя если бы писал я то скорее писал как в варианте jonjonson)
 

hermit_refined

Отшельник
подводя итоги опроса: даже такой простейший код 2/3 программистов по-нормальному записать неспособны.
 

Фанат

oncle terrible
Команда форума
не программистов, а песателей данного форума.

-~{}~ 24.02.07 21:52:

dark-demon
нафига такая кривизна с одновременным изменением переменной и возвратом её же?
для экономии кода? чтобы избежать проверки isset?
 

hermit_refined

Отшельник
беда в том, что они не только на форуме пишут, они ещё и сайты делают.
для экономии кода? чтобы избежать проверки isset?
дык (хотя про возврат я тоже не понял). в C макросами и не такое творится.
но для php - да, кривизна, потому как идеология другая.
а вот объект под это дело... ;-)))
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху