неожиданный T_CONSTANT_ENCAPSED_STRING

Я использую CakePHP, запущенный на сервере XAMPP с PHP 5.3.5, я все время получаю сообщение об ошибке синтаксиса сообщения об ошибке, неожиданно T_CONSTANT_ENCAPSED_STRING Строка 38

Строка 38 «Опубликовано»,

Код

<div id="center_content"> <h2>Post Listings</h2> <p>Here is a list of existing posts</p> <div> </div> <?php if (isset($posts) && is_array($posts)) { ?> <table> <tr> <td> <b>ID</b> </td> <td> <b>title</b> </td> <td> <b>content</b> </td> <td> <b>Last Modified</b> </td> <td> <b>published<b> </td> <td colspan="2"><b>&nbsp;&nbsp;Action</b></td> </tr> <?php foreach ($posts as $post): ?> <tr> <td><?php echo $post['Post']['id'];?></td> <td><?php echo $post['Post']['title'];?></td> <td><?php echo $post['Post']['content'];?></td> <td><?php echo $post['Post']['modified'];?></td> <td> <?php echo $html->link(ife( $post['Post']['published'] == 1', 'Published', 'Unpublished), '/posts/'.ife($post['Post']['published'] == 1', 'disabled','enable').'/'.$post['Post']['id'] ); ?> </td> <td> <?php echo $html->link( 'Edit', '/posts/edit'.$post['Post']['id']);?> </td> <td> <?php echo $html->link( 'Delete', '/posts/delete/'.$post['Post']['id']);?> </td> </tr> <? endforeach; ?> <?php if (sizeof($posts) == 0) { ?> <tr style= "background-color:#cccccc;"> <td colspan="6"> <span style="font-size: 17px;"> No post found. </span> </td> </tr> <?php } ?> </table> <br/> <?php } ?> </div> 

Это все, Примечание. Я запускаю приложение с PHP 5.3.5 с помощью CakePHP MVC Framework

Solutions Collecting From Web of "неожиданный T_CONSTANT_ENCAPSED_STRING"

Измените его

  <?php echo $html->link(ife( '$post['Post']['published'] == 1', 'Published', 'Unpublished'), '/posts/'.ife('$post'['Post']['published'] == 1', 'disabled','enable').'/'.$post['Post']['id'] ); ?> 

в

 <?php echo $html->link(ife( $post['Post']['published'] == 1', 'Published', 'Unpublished), '/posts/'.ife($post['Post']['published'] == 1', 'disabled','enable).'/'.$post['Post']['id'] ); ?> 

Вам просто нужно было удалить одну цитату прямо перед $ post

Попробуйте сделать его более читаемым:

 $isPublished = ($post['Post']['published'] == 1) ? true : false; echo $html->link( ife($isPublished, 'Published','Unpublished'), '/posts/' . ife($isPublished, 'disabled', 'enable') . '/' . $post['Post']['id'] ); 
  $post['Post']['published'] == '1', 

Это работает для меня … У вас был старый php-тег и были одинарные кавычки в неправильных местах.

Я не уверен, что такое «ife», скорее всего, если утверждение не пошло не так?

 <div id="center_content"> <h2>Post Listings</h2> <p>Here is a list of existing posts</p> <div> </div> <?php if (isset($posts) && is_array($posts)) { ?> <table> <tr> <td> <b>ID</b> </td> <td> <b>title</b> </td> <td> <b>content</b> </td> <td> <b>Last Modified</b> </td> <td> <b>published<b> </td> <td colspan="2"><b>&nbsp;&nbsp;Action</b></td> </tr> <?php foreach ($posts as $post): ?> <tr> <td><?php echo $post['Post']['id'];?></td> <td><?php echo $post['Post']['title'];?></td> <td><?php echo $post['Post']['content'];?></td> <td><?php echo $post['Post']['modified'];?></td> <td> <?php echo $html->link( ($post['Post']['published'] == 1 ? 'Published' : 'Unpublished'), '/posts/' . ($post['Post']['published'] == 1 ? 'disabled' : 'enabled') . '/' . $post['Post']['id'] ); ?> </td> <td> <?php echo $html->link( 'Edit', '/posts/edit'.$post['Post']['id']);?> </td> <td> <?php echo $html->link( 'Delete', '/posts/delete/'.$post['Post']['id']);?> </td> </tr> <?php endforeach; ?> <?php if (sizeof($posts) == 0) { ?> <tr style= "background-color:#cccccc;"> <td colspan="6"> <span style="font-size: 17px;"> No post found. </span> </td> </tr> <?php } ?> </table> <br/> <?php } ?> </div>