Unexpected T_CONSTANT_ENCAPSED_STRING

I am using CakePHP running on an XAMPP server with PHP 5.3.5, I keep getting the error syntax error, unexpected T_CONSTANT_ENCAPSED_STRING Line 38

Line 38 "Published",

The code

<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> 

That's all. Remember that I am running the application with PHP 5.3.5 using CakePHP MVC Framework.

+4
source share
4 answers

Change it

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

to

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

You just had to remove one quote right before $ post

+5
source

Try to make it more readable:

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

This works for me ... You had an old php tag and had single quotes in the wrong places.

I'm not sure what an "ife" is, most likely if the statement hadn't gone wrong?

 <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> 
0
source

All Articles