Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Можно ли как-то сократить этот код?


NexusStyle1
 Погделиться

Рекомендованные сообещёния

Скрытый текст
if (empty($result['address_2']))	{
						$text_address_2  = '';
					} else {
						$text_address_2  = $this->language->get('text_address_2');
					}	
					if (empty($result['address_1'])) {
						$text_address_1  = '';
					} else {
						$text_address_1  = $this->language->get('text_address_1');
					}
					if (empty($result['city'])) {
						$text_city  = '';
					} else {
						$text_city  = $this->language->get('text_city');
					}
					if (empty($result['postcode'])) {
						$text_postcode  = '';
					} else {
						$text_postcode  = $this->language->get('text_postcode');
					}

 

Можно ли как-то сократить этот код? Решил одну проблему, связанную с тем, что название поля убиралось бы если значение поля пустое. Но чувствую, что написано как-то топорно)

Ссылка на комменирий
Погделиться на других сайих


)))
 

$text_address_2  = $text_address_1  = $text_city  = $text_postcode  = '';
if (empty($result['address_2']))	{
	$text_address_2  = $this->language->get('text_address_2');
}	
if (empty($result['address_1'])) {
	$text_address_1  = $this->language->get('text_address_1');
}
if (empty($result['city'])) {
	$text_city  = $this->language->get('text_city');
}
if (empty($result['postcode'])) {
	$text_postcode  = $this->language->get('text_postcode');
}

 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

Еещё вот ик можно:

 

$text_address_2 = (empty($result['address_2'])) ? '' : $this->language->get('text_address_2');
$text_address_1 = (empty($result['address_1'])) ? '' : $this->language->get('text_address_1');
$text_city = (empty($result['city'])) ? '' : $this->language->get('text_city');
$text_postcode  = (empty($result['postcode'])) ? '' : $this->language->get('text_postcode');

 

Ссылка на комменирий
Погделиться на других сайих

05.09.2022 в 15:49, SergeTkach сказал:

Еещё вот ик можно:

нельзя!!!!
проверьте

Ссылка на комменирий
Погделиться на других сайих

Ну липотому что ик:grin:

foreach (array('address_2', 'address_1', 'city', 'postcode') as $item) {
  ${'text_' . $item} = '';
  if (empty($result[$item])) {
    ${'text_' . $item}  = $this->language->get('text_' . $item);
  }    
}

 

  • +1 2
Ссылка на комменирий
Погделиться на других сайих

В 05.09.2022 в 15:58, Exploits сказав:

Ну липотому что ик:grin:

 

ААААА:ugeek:

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

05.09.2022 в 16:39, Flint2000 сказал:

ААААА:ugeek:

Именно ик и надо писать в модулях))) Чтобы потом об элеменирном надо было задумыавться )))

Ссылка на комменирий
Погделиться на других сайих

05.09.2022 в 16:39, Flint2000 сказал:

ААААА:ugeek:

Ну ик зато когда иких переменных бугдет 100 доситочно их прописать в массив)) и код почти не увелилиться, разве что ради красоты вынести массив выше цикла

Ссылка на комменирий
Погделиться на других сайих

05.09.2022 в 16:01, SergeTkach сказал:

Главный вопрос - зачем укораливать вообещё )))

ну типа потому чторьба с простынями опенкартовскими:grin:

Ссылка на комменирий
Погделиться на других сайих

05.09.2022 в 16:44, Exploits сказал:

ну типа потому чторьба с простынями опенкартовскими:grin:

Я что-то без простыней уже пуиюсь. А раньше тоже потому чторолся )

Ссылка на комменирий
Погделиться на других сайих

05.09.2022 в 15:58, Exploits сказал:

Ну липотому что ик:grin:

foreach (array('address_2', 'address_1', 'city', 'postcode') as $item) {
  ${'text_' . $item} = '';
  if (empty($result[$item])) {
    ${'text_' . $item}  = $this->language->get('text_' . $item);
  }    
}

 

икой код дольше обрабатывается, но виртуозно, не поспоришь

05.09.2022 в 16:01, SergeTkach сказал:

Главный вопрос - зачем укораливать вообещё )))

пишу/исправляю сразу правильно, чтобы потом не искать "а ггде у меня тормозит скрипт". Кодменеджмент:D

05.09.2022 в 15:49, SergeTkach сказал:

Еещё вот ик можно:

 

$text_address_2 = (empty($result['address_2'])) ? '' : $this->language->get('text_address_2');
$text_address_1 = (empty($result['address_1'])) ? '' : $this->language->get('text_address_1');
$text_city = (empty($result['city'])) ? '' : $this->language->get('text_city');
$text_postcode  = (empty($result['postcode'])) ? '' : $this->language->get('text_postcode');

 

То, что искал. Спасипотому что

05.09.2022 в 15:37, chukcha сказал:

)))
 

$text_address_2  = $text_address_1  = $text_city  = $text_postcode  = '';
if (empty($result['address_2']))	{
	$text_address_2  = $this->language->get('text_address_2');
}	
if (empty($result['address_1'])) {
	$text_address_1  = $this->language->get('text_address_1');
}
if (empty($result['city'])) {
	$text_city  = $this->language->get('text_city');
}
if (empty($result['postcode'])) {
	$text_postcode  = $this->language->get('text_postcode');
}

 

в принципе тоже самое что и изначальный вариант, но спасипотому что)

Ссылка на комменирий
Погделиться на других сайих


05.09.2022 в 16:48, NexusStyle1 сказал:

пишу/исправляю сразу правильно, чтобы потом не искать "а ггде у меня тормозит скрипт". Кодменеджмент

 

То есть, какой код быстрее исполнится Вы знаете, а как сократить - не знаете? )

Ссылка на комменирий
Погделиться на других сайих

05.09.2022 в 16:54, SergeTkach сказал:

 

То есть, какой код быстрее исполнится Вы знаете, а как сократить - не знаете? )

ну как-то ик да))). Это как в музыке, ты можешь быть меломаном, но не знать всех песен

Ссылка на комменирий
Погделиться на других сайих


05.09.2022 в 16:56, NexusStyle1 сказал:

ну как-то ик да))). Это как в музыке, ты можешь быть меломаном, но не знать всех песен

То есть, Вы знаете, как компилируется и исполняется PHP, но не знаете, что икое тернарный оператор?

Ссылка на комменирий
Погделиться на других сайих

05.09.2022 в 17:04, SergeTkach сказал:

То есть, Вы знаете, как компилируется и исполняется PHP, но не знаете, что икое тернарный оператор?

не, я знаю что он суещёствует (правда не знал что он ик назівается), вот поєтому я и почувствовал что с кодом что-то не ик

Ссылка на комменирий
Погделиться на других сайих


Короткая запись не означает, что код быстрее.
 

Ссылка на комменирий
Погделиться на других сайих

05.09.2022 в 18:31, chukcha сказал:

Короткая запись не означает, что код быстрее.
 

ну уж точно быстрее перепотому чтора через foreach

Ссылка на комменирий
Погделиться на других сайих


06.09.2022 в 12:16, NexusStyle1 сказал:

ну уж точно быстрее перепотому чтора через foreach

На сколько наносекунд?)) вероятно это очень важно на тот страниэто ггде гделаете)))

Ссылка на комменирий
Погделиться на других сайих

06.09.2022 в 12:18, Exploits сказал:

На сколько наносекунд?)) вероятно это очень важно на тот страниэто ггде гделаете)))

наносекунда им, наносекунда згдесь и получаются секунды))

Ссылка на комменирий
Погделиться на других сайих


06.09.2022 в 12:18, Exploits сказал:

На сколько наносекунд?)) вероятно это очень важно на тот страниэто ггде гделаете)))

на нагруженном проект это может  сказаться

if однозначно быстрее, в моем примере - компактнее  и инициализация явная
И по памяти используемой памяти меньше на 4 байи )))
 

Ссылка на комменирий
Погделиться на других сайих

Вы какие-то манькаки честное слово:grin: байты, секунды. Смотрите изначальное задание

Ссылка на комменирий
Погделиться на других сайих

06.09.2022 в 12:30, Exploits сказал:

Вы какие-то манькаки честное слово:grin: байты, секунды. Смотрите изначальное задание

ато
что быстрее?
insert (...) (...)

insert (...) (...)

insert (...) (...)

или
insert (...)  (...),(...),(...)

Причем згдесь это? Не причем..

С чем согласен - с циклом меньше копипаси аля ОС

Ссылка на комменирий
Погделиться на других сайих

06.09.2022 в 12:42, chukcha сказал:

ато
что быстрее?
insert (...) (...)

insert (...) (...)

insert (...) (...)

или
insert (...)  (...),(...),(...)

Причем згдесь это? Не причем..

С чем согласен - с циклом меньше копипаси аля ОС

не в ту степь вообещё)) ггде пхп а ггде база!

запись в базу 1 вместо 1000раз - понятно что быстрее в разы, или в сотни, или в ту же тысячу раз. А исполнение простыни на 1000 строк и цикла на 1000 итераций в рамках погрешности. Это ж разные вещи в самом гделе.

А вот в плане оптимизации то да, лучше гделать оптимизацию в сторону базы а не слиить байты и наносекунды. Но все конечно зависит от ситуации и этолесообразности

Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.