Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: В чём ошибка (parse error, unexpected T_CONSTANT_ENCAPSED_STRING)?
 
 автор: shizik   (14.10.2004 в 15:42)   письмо автору
 
 

ввожу следующий код:
...
echo '<tr><td><table width = 550 border=0>
<tr><td width = 150><div align=center><font Color=#336699><a href="'.$_SESSION['i']=$i_page-5.'obvesfoto.phtml"><b> << НАЗАД </b></font></div></td>
<td ><div align=center><font Color=white><a href="'.$_SESSION['i']=$i_page-4.'obvesfoto.phtml"><b> '.$i_page-4.' </b></font></div></td>
</table></td></tr>';
...
Выдается следующая ошибка: Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in c:\Localca\inc\foto.php on line 151

   
 
 автор: shizik   (14.10.2004 в 15:46)   письмо автору
 
   для: shizik   (14.10.2004 в 15:42)
 

Полный вид данного кусочка кода:

switch ($i_page % 5) 
       {
         case "1": 
        echo '<tr><td><table width = 550 border=0>
        <tr><td width = 150><div align=center><font Color=#336699><a href="'.$_SESSION['i']=$i_page-5.'obvesfoto.phtml"><b> << НАЗАД </b></font></div></td>
        <td ><div align=center><font Color=white><a href="'.$_SESSION['i']=$i_page-4.'obvesfoto.phtml"><b> '.$i_page-4.' </b></font></div></td>
        <td><div align=center><font Color=#336699><a href="'.$_SESSION['i']=$i_page-3.'obvesfoto.phtml"><b> '.$i_page-3.' </b></font></div></td>
        <td><div align=center><font Color=#336699><a href="'.$_SESSION['i']=$i_page-2.'obvesfoto.phtml"><b> '.$i_page-2.' </b></font></div></td>
        <td><div align=center><font Color=#336699><a href="'.$_SESSION['i']=$i_page-1.'obvesfoto.phtml"><b> '.$i_page-1.' </b></font></div></td>
        <td><div align=center><font Color=#336699><a href="'.$_SESSION['i']=$i_page.'obvesfoto.phtml"><b> '.$i_page.' </b></font></div></td>
        <td width = 150><div align=center><font Color=#336699><a href="'.$_SESSION['i']=$i_page+5.'obvesfoto.phtml"><b> СЛЕДУЮЩИЕ >> </b></font></div></td></tr>
        </table></td></tr>';                
        break;


ошибка таже, 151 строка - это строка с $i-4, где ж она ?

   
 
 автор: shizik   (14.10.2004 в 15:53)   письмо автору
 
   для: shizik   (14.10.2004 в 15:46)
 

кстати, если вы посчитаете что с такими вопросами обращаться - это уж слишком - сообщите мне об этом и извините меня за такой вопрос - просто мои знания пока малы.
(Соответственно - если это слишком - больше подобных вопросов задавать не буду)

   
 
 автор: cheops   (14.10.2004 в 15:55)   письмо автору
 
   для: shizik   (14.10.2004 в 15:53)
 

Вы можете обращаться на этот форум с любыми вопросами, которые вам не понятны, только старайтесь название темы делать более осмысленное, например, используя часть сообщения об ошибке. Например,
В чём ошибка (parse error, unexpected T_CONSTANT_ENCAPSED_STRING)?

   
 
 автор: shizik   (14.10.2004 в 15:58)   письмо автору
 
   для: cheops   (14.10.2004 в 15:55)
 

хорошо.
большое спасибо

   
 
 автор: cheops   (14.10.2004 в 15:53)   письмо автору
 
   для: shizik   (14.10.2004 в 15:46)
 

А вот эта конструкция для чего предназначена
'.$_SESSION['i']=$i_page-4.'

именно она и вызывает ошибку.
Так
'.$i_page-4.'

тоже писать нельзя, следует придерживаться синтаксиса
'.($i_page-4).'

   
 
 автор: shizik   (14.10.2004 в 15:56)   письмо автору
 
   для: cheops   (14.10.2004 в 15:53)
 

а так можно:
'.($_SESSION['i']=$i_page-4).'


конструкция нужна для того чтобы снять это значение и в дальнейшем провести арифметические вычисления по вычислению номеров картинок выставляемых сценарием на фронт енд из папки

   
 
 автор: cheops   (14.10.2004 в 16:04)   письмо автору
 
   для: shizik   (14.10.2004 в 15:56)
 

Можно, но это нарушение хорошего стиля программирования, такое присвоение запутывает код - программу сложнее сопровождать и читать. Обычно сначала присваивают значение, а потом его используют:
<?php
  $_SESSION
['i'] = $i_page-4;
  echo 
$_SESSION['i'];
?>


PS Программисты привыкли именно к такому написанию программ, поэтому читая код с отличным способом им придётся тратить дополнительное время на его разбор и восприятие.
PPS К тому же $_SESSION['i'] принимает только одно значение и все предыдущие присваения не имеют смысла - вместо них можно писать $i_page-4, $i_page-3 и т.п., без присваения их значения $_SESSION['i'].

   
 
 автор: shizik   (14.10.2004 в 16:07)   письмо автору
 
   для: cheops   (14.10.2004 в 16:04)
 

вы знаете, наверное я совсем не прав.
на самом деле я так понимаю что значение массива и в моем варианте и в вашем будет выбрасываться на страницу хтмл, мне этого как раз не нужно.
я хочу присвоить значение тихо мирно - а ссылка чтоб жила своим чередом... это возможно сделать в теле echo ?

   
 
 автор: shizik   (14.10.2004 в 16:07)   письмо автору
 
   для: shizik   (14.10.2004 в 16:07)
 

может быть я не понятно выразился...

   
 
 автор: shizik   (14.10.2004 в 16:16)   письмо автору
 
   для: shizik   (14.10.2004 в 16:07)
 

еще один вопрос - есть ли многострочные комментарии в пхп ?

   
 
 автор: cheops   (14.10.2004 в 16:19)   письмо автору
 
   для: shizik   (14.10.2004 в 16:16)
 

Да PHP собрал практически все комментарии современных языков программирования, наряду с однострочными комментариями в стиле sell-скриптов (#) и С++ (//) можно использвать многострочный комментарий в стиле C:
<?php
/* Это многострочный комментарий
    в стиле С. Как С-подобный язык
    программирования PHP его поддерживает*/
?>

   
 
 автор: cheops   (14.10.2004 в 16:16)   письмо автору
 
   для: shizik   (14.10.2004 в 16:07)
 

Хм... это не обязательно делать непосредственно в echo - это нарушение хорошего стиля - одному оператору одно действие: echo предназначено для вывода информации, поэтому присвоение следует проводить отдельно.

Вот этот скрипт полностью эквивалентен вашему:
<?php 
case "1"
 
$_SESSION['i']=$i_page// Или чему оно должно быть равно?
 
echo '<tr><td><table width = 550 border=0> 
  <tr><td width = 150><div align=center><font Color=#336699><a href="'
.($i_page-5).'obvesfoto.phtml"><b> << НАЗАД </b></font></div></td> 
  <td ><div align=center><font Color=white><a href="'
.($i_page-4).'obvesfoto.phtml"><b> '.($i_page-4).' </b></font></div></td> 
  <td><div align=center><font Color=#336699><a href="'
.($i_page-3).'obvesfoto.phtml"><b> '.($i_page-3).' </b></font></div></td> 
  <td><div align=center><font Color=#336699><a href="'
.($i_page-2).'obvesfoto.phtml"><b> '.($i_page-2).' </b></font></div></td> 
  <td><div align=center><font Color=#336699><a href="'
.($i_page-1).'obvesfoto.phtml"><b> '.($i_page-1).' </b></font></div></td> 
  <td><div align=center><font Color=#336699><a href="'
.($i_page).'obvesfoto.phtml"><b> '.($i_page).' </b></font></div></td> 
  <td width = 150><div align=center><font Color=#336699><a href="'
.($i_page+5).'obvesfoto.phtml"><b> СЛЕДУЮЩИЕ >> </b></font></div></td></tr> 
  </table></td></tr>'
;                 
  break; 
?>

   
 
 автор: shizik   (14.10.2004 в 16:23)   письмо автору
 
   для: cheops   (14.10.2004 в 16:16)
 

понял. спасибо большое

   
 
 автор: shizik   (14.10.2004 в 16:26)   письмо автору
 
   для: shizik   (14.10.2004 в 16:23)
 

если вам интересно, я решил поступить следующим образом:

case "1": 
        echo '<tr><td><table width = 550 border=0>
        <tr><td width = 150><div align=center><font Color=#336699><a href="obvesfoto.phtml?i_page='.($i_page-5).'"><b> << НАЗАД </b></font></div></td>
        <td ><div align=center><font Color=white><a href="obvesfoto.phtml?i_page='.($i_page-4).'"><b> '.($i_page-4).' </b></font></div></td>
        <td><div align=center><font Color=#336699><a href="obvesfoto.phtml?i_page='.($i_page-3).'"><b> '.($i_page-3).' </b></font></div></td>
        <td><div align=center><font Color=#336699><a href="obvesfoto.phtml?i_page='.($i_page-2).'"><b> '.($i_page-2).' </b></font></div></td>
        <td><div align=center><font Color=#336699><a href="obvesfoto.phtml?i_page='.($i_page-1).'"><b> '.($i_page-1).' </b></font></div></td>
        <td><div align=center><font Color=#336699><a href="obvesfoto.phtml?i_page='.$i_page.'"><b> '.$i_page.' </b></font></div></td>
        <td width = 150><div align=center><font Color=#336699><a href="obvesfoto.phtml?i_page='.$i_page+5.'"><b> СЛЕДУЮЩИЕ >> </b></font></div></td></tr>
        </table></td></tr>';                        
break;

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования