Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблема с условиями


Автор: ARXANGGGEL 9.12.2012, 04:07
Есть такой код:
Код

<?php
if (isset($title))
{

}
elseif (!isset($title)) {
foreach ($news as $item)
{
?>
<table cellpadding="0" cellspacing="0" align="center" width="70%" border="0" class="news">
        <tr>
            <td width="300" valign="top">
                <a href="index.php?view=news&t=<?=$item['title_url'];?>"><img src="userfiles/news/<?=$item['img'];?>" alt="<?=$item['title'];?>" width="300" /></a>
            </td>
            <td valign="top" class="news-text-td">
                <div class="news-title"><a href="index.php?view=news&t=<?=$item['title_url'];?>"><?=$item['title'];?></a></div>
                <?=$item['text'];?>
            </td>
        </tr>
</table>
<div class="line"></div>
<?php
} }
?>


А такой уже не работает
Код
<?php
if (isset($title))
{
?>
<?

}
elseif (!isset($title)) {
foreach ($news as $item)
{
?>
<table cellpadding="0" cellspacing="0" align="center" width="70%" border="0" class="news">
        <tr>
            <td width="300" valign="top">
                <a href="index.php?view=news&t=<?=$item['title_url'];?>"><img src="userfiles/news/<?=$item['img'];?>" alt="<?=$item['title'];?>" width="300" /></a>
            </td>
            <td valign="top" class="news-text-td">
                <div class="news-title"><a href="index.php?view=news&t=<?=$item['title_url'];?>"><?=$item['title'];?></a></div>
                <?=$item['text'];?>
            </td>
        </tr>
</table>
<div class="line"></div>
<?php
} }
?>

Разница только в выделенном участке. (см. 2-й код, строки 4-5) 
Ошибка - SCREAM: Error suppression ignored for
( ! ) Parse error: syntax error, unexpected '}' in
Я во втором коде, в ифе, там где разделил тегами, хочу влепить html код.

Автор: ARXANGGGEL 9.12.2012, 13:14
Вот такой вот полный код:
Код

<?php
if (isset($title))
{?>
     <div align="center" class="news-title" style="margin-top: 20px;"><?=$page_data['title'];?></div>
        <div class="news-full-text">
            <?=$page_data['text'];?>
            <div class="date"><?=$page_data['date'];?> / <?=$page_data['time'];?></div>
     </div>
<?}
elseif (!isset($title)) {
foreach ($news as $item)
{
?>
    <table cellpadding="0" cellspacing="0" align="center" width="70%" border="0" class="news">
            <tr>
                <td width="300" valign="top">
                    <a href="index.php?view=news&t=<?=$item['title_url'];?>"><img src="userfiles/news/<?=$item['img'];?>" alt="<?=$item['title'];?>" width="300" /></a>
                </td>
                <td valign="top" class="news-text-td">
                    <div class="news-title"><a href="index.php?view=news&t=<?=$item['title_url'];?>"><?=$item['title'];?></a></div>
                    <?=$item['text'];?>
                </td>
            </tr>
    </table>
    <div class="line"></div>
<?php
}
}
?>

Автор: Arantir 9.12.2012, 15:01
Код

<?}
Чё это?

Автор: ARXANGGGEL 9.12.2012, 16:34
Закрывающая скобка для ифа

Автор: Arantir 9.12.2012, 17:24
Цитата(ARXANGGGEL @  9.12.2012,  15:34 Найти цитируемый пост)
Закрывающая скобка для ифа 
smile 

У вас сокращенные теги включены в настройках? 
short_open_tag = On

Конструкция <?=$var;?> не вызывает ошибок при отключенных сокращенных тегах. А вот сами теги - да. А это у вас единственная разница между вариантами кода. По этому подозрение падает на отключенные с.т.

А в PHP5.4 <?=$var;?> работает и вовсе без включения сокращенных тегов.

Добавлено через 4 минуты и 44 секунды
Лучше просто попробуйте так:
Код

<?php
if (isset($title))
{
?>
<?php
}

Автор: Aliance 10.12.2012, 11:38
Не проще ли писать так:
Код

<? if (blahblahblah): ?>
<h1>if text</h1>
<? else: ?>
<p>else text</p>
<? endif; ?>

Автор: ksnk 10.12.2012, 11:58
Цитата(Aliance @  10.12.2012,  11:38 Найти цитируемый пост)
Не проще ли писать так:

а чем это проще? php-блоков меньше не стало. Букв меньше не стало...

Автор: ARXANGGGEL 10.12.2012, 13:29
Немного преписал. 
Без разделения. Все работает. 

Arantir, короткие теги включены. 

Автор: Aliance 10.12.2012, 14:31
Цитата(ksnk @  10.12.2012,  12:58 Найти цитируемый пост)
а чем это проще?

субъективно кому-то проще может быть. например мне smile как минимум из-за отсутствия смайликов в коде аля {?>

Автор: s0lman 10.12.2012, 15:30
Цитата(Aliance @  10.12.2012,  13:31 Найти цитируемый пост)
 как минимум из-за отсутствия смайликов в коде 


Есть существенный минус в подобном подходе: любой редактор подсветит закрывающую скобку, тогда как endif ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)