[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Непонятки с php
kadr
Привет всем!!
Объясните пожалуйста, с чем связана такая ошиька:
Parse error: syntax error, unexpected $end in /var/www/kadr/protected/views/registration/create.php on line 23
и как ее решить. То что мне удалось выяснить:
если допустим на страничке есть цикл и внутри него пишу чисто html, то вылетает такая ошибка, если писать это в echo, то нормульно.
<?php foreach ($a as $b) {?>
<tr>....</tr>
<?php }?>
Вылетает ошибка, а если
<?php foreach ($a as $b) {
echo "<tr>....</tr>";
}?>
то нормально. Как сделать, что бы первый вариант работал нормально?
PHP Version 5.3.3



Спустя 12 минут, 10 секунд (6.02.2012 - 10:41) nugle написал(а):
kadr
ошибка явно не тут, так как у меня все прекрасно работает

Спустя 2 минуты, 48 секунд (6.02.2012 - 10:44) alexbel2404 написал(а):
где-то скобки не хватает )

Спустя 1 час, 34 минуты, 49 секунд (6.02.2012 - 12:19) kadr написал(а):
самое интересное, то что, когда ставишь перед всеми html тегами echo и заключаешь их в кавычки, то он никакие дополнительные скобки не требует и работает нормально.

Спустя 22 минуты, 57 секунд (6.02.2012 - 12:42) kadr написал(а):
Вот посмотрите:

<?php if(Yii::app()->user->hasFlash('create'))
{ ?>
<div class="flash-success">
<?php echo Yii::app()->user->getFlash('create'); ?>
</div>
<?php }
else
{ ?>
<h1>Зарегистрироваться</h1>
<?php echo $this->renderPartial('_form', array('model'=>$model)); ?>
<?php
} ?>

Этот кусок вызывает ошибку!
А вот так:

<?php if(Yii::app()->user->hasFlash('create'))
{
echo "<div class='flash-success'>";
echo Yii::app()->user->getFlash('create');
echo "</div>";
}
else
{
echo "<h1>Зарегистрироваться</h1>";
echo $this->renderPartial('_form', array('model'=>$model));

}?>

работает нормально, причем никаких скобок я не добавлял.

Спустя 18 минут, 41 секунда (6.02.2012 - 13:00) ZSH написал(а):
Внутри класса нельзя делать разрывы в скрипте независимо от версии PHP

Спустя 1 минута, 32 секунды (6.02.2012 - 13:02) nugle написал(а):
зачем тебе это надо? почему бы просто через echo не выводить?

Спустя 1 час, 3 минуты, 13 секунд (6.02.2012 - 14:05) kadr написал(а):
ДА дело в том, что просто это уже есть, а после переноса на другой сервер, не работает и править много не охото. Это не класс это обычный индексный файл. Вроде я нашел в чем проблема, полазив в инете на предмет того, почему у меня не работают теги <? ?> и <?= ?> конструкции, наткнулся на то, что это короткие теги и они пережиток прошлого и их не желательно использовать, и вообще в 6 версии их запретят, так вот именно по этому он и ругается, потому что допустим не может интерпритировать <?}?> такую конструкцию того же цикла
<?php
foreach($a as $b) {?>
<html> теги
<?}?> <--- косячная конструкция.
<?php }?> <---- правильная конструкция и рабочая.

Спустя 3 минуты, 5 секунд (6.02.2012 - 14:08) nugle написал(а):
kadr
ну а где у тебя не правильная конструкция в твоем примере?

Спустя 11 минут, 49 секунд (6.02.2012 - 14:20) ZSH написал(а):
Цитата
Это не класс это обычный индексный файл.

<?php echo $this->renderPartial('_form', array('model'=>$model)); ?>
а this откуда взялось?
значит этот файл подключен внутри класа

Спустя 9 минут, 44 секунды (6.02.2012 - 14:30) killer8080 написал(а):
Цитата (ZSH @ 6.02.2012 - 12:00)
Внутри класса нельзя делать разрывы в скрипте независимо от версии PHP

С чего бы это? Вот прекрасно работает
class Test{
public function __construct(){
?>
text tt
<?
}
}

$o = new Test;

Спустя 11 минут, 16 секунд (6.02.2012 - 14:41) ZSH написал(а):
Цитата
С чего бы это? Вот прекрасно работает


blink.gif блин счас попробую еще, раньше сколько не пытался ошибки были

Спустя 6 минут, 22 секунды (6.02.2012 - 14:47) ZSH написал(а):
killer8080 действительно работает
извиняюсь за неверную информацию
просьба к админам удалить мои посты в этой теме чтоб не вводить в заблуждение народ

Спустя 3 минуты, 24 секунды (6.02.2012 - 14:51) killer8080 написал(а):
Цитата (ZSH @ 6.02.2012 - 13:47)
просьба к админам удалить мои посты в этой теме чтоб не вводить в заблуждение народ

зачем? Может это будет уроком еще для кого нибудь smile.gif
Вот так помогая другим, учишься сам smile.gif

Спустя 8 минут, 38 секунд (6.02.2012 - 15:00) ZSH написал(а):
тогда дополню
Цитата
Внутри класса нельзя делать разрывы в скрипте независимо от версии PHP

class Test{
public function __construct(){
}

?>
text tt
<?
}
$o = new Test;

можно делать в методе класса
class Test{
public function __construct(){
?>
text tt
<?
}
}

$o = new Test;

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.