Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2010, 00:52   #1
XDmitry
 
Регистрация: 22.08.2010
Сообщений: 5
По умолчанию Вопрос по PHP

День добрый!

Вопрос к специалистам PHP. Есть конструкция (вроде правильная?):

PHP код:
<?php if (логическое выражение_1): ?>

    <?php “оператор_ 1” ?>

<?php elseif (логическое выражение_2): ?>

    <?php “оператор_2” ?>

<?php else: ?>

    <?php “оператор_3” ?>
          
<?php endif; ?>
Может что намудрил, короче: если выражение_1 TRUE (в массиве есть хотябы одно значение), исполнить оператор_1.
Если FALSE, то: если выражение_2 TRUE, исполнить оператор_2. Если выражение_2
FALSE, то выполнить оператор_3. Весь код будет в шаблоне …tpl.php.

Логическое выражение_1 это:

PHP код:
foreach ((array)$node->field_salary_agreement_vac as $item) {
    print 
$item['view']

Логическое выражение_2 это:

PHP код:
$node->field_age_vac[0]['view'
.
Здесь понятно, будет так:
PHP код:
<?php elseif ($node->field_age_vac[0]['view']): ?>
А вот логическое выражение_1 как составить? Спасибо
XDmitry вне форума Ответить с цитированием
Старый 22.08.2010, 01:01   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Цитата:
Сообщение от XDmitry Посмотреть сообщение
Логическое выражение_1 это:

PHP код:
foreach ((array)$node->field_salary_agreement_vac as $item) {
    print 
$item['view']

Это не логическое выражение.
Arigato вне форума Ответить с цитированием
Старый 22.08.2010, 01:06   #3
XDmitry
 
Регистрация: 22.08.2010
Сообщений: 5
По умолчанию

Да, это функция перебора массива. Я имел в виду, как построить условие, если в данном массиве есть значение то оператор_1 выполнится. Если в массиве пусто, то произоедет переход к elseif.
XDmitry вне форума Ответить с цитированием
Старый 22.08.2010, 02:54   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

count() - количество элементов в массиве. Проверяйте, если 0, значит пуст.
Arigato вне форума Ответить с цитированием
Старый 22.08.2010, 03:08   #5
XDmitry
 
Регистрация: 22.08.2010
Сообщений: 5
По умолчанию

...если бы еще знать как это все грамотно составить, было бы неплохо. Кстати, а in_array() тоже подходит для подобной задачи?
XDmitry вне форума Ответить с цитированием
Старый 22.08.2010, 04:51   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Если там заведомо массив, то и пустой массив (count == 0) все равно остается массивом. Так что не пойдет.
Arigato вне форума Ответить с цитированием
Старый 22.08.2010, 13:07   #7
XDmitry
 
Регистрация: 22.08.2010
Сообщений: 5
По умолчанию

т.е. count() не пойдет? Тогда как?

Похоже, что задача не простая, раз нет конкретных решений. Будем решать.

Последний раз редактировалось Stilet; 25.08.2010 в 09:44.
XDmitry вне форума Ответить с цитированием
Старый 22.08.2010, 17:52   #8
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Цитата:
Сообщение от XDmitry
т.е. count() не пойдет?
in_array() не пойдет, т.к. с его помощью можно лишь узнать, что там массив. Но пустой массив тоже массив. Поэтому именно count() пойдет.
Цитата:
Сообщение от XDmitry
Будем решать.
Решайте
Arigato вне форума Ответить с цитированием
Старый 24.08.2010, 22:25   #9
XDmitry
 
Регистрация: 22.08.2010
Сообщений: 5
По умолчанию

Вот решение:

Код:
<?php	
	if (логическое_выражение_2) {
		оператор_2
	}
	else {
		$output = '';
			foreach($node->field_salary_agreement_vac as $item) {
			   $output .= $item['view'];
		}
		print $output ? $output : print оператор_3;
	}
  <?
XDmitry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по PHP MoT9I Помощь студентам 1 26.02.2010 01:50
Вопрос о загаловках в PHP PheonixS PHP 2 07.09.2009 12:49
вопрос по php от начинающего sleeper_Izh PHP 15 11.07.2008 10:19