Stranezze ...all'interno di "node.php" (Tema Garland)

5 contenuti / 0 new
Ultimo contenuto
Stranezze ...all'interno di "node.php" (Tema Garland)

Ciao a tutti!
Scusate per la domanda magari banale ma, essendo proprio al "minimo" di php, esaminando il codice che segue e che si trova all'interno di "node.php" (Tema Garland), ho notato che ci sono dei "print" con delle variabili; alcune terminano con il ";" e alcune no.

<?php
// $Id: node.tpl.php,v 1.5 2007/10/11 09:51:29 goba Exp $
?>

<div id="node-<?php print $node->nid; ?>" class="node<?php if ($sticky) { print ' sticky'; } ?><?php if (!$status) { print ' node-unpublished'; } ?>">
<?php print $picture ?>
<?php if ($page == 0): ?>
  <h2><a href="<?php print $node_url ?>" title="<?php print $title ?>"><?php print $title ?></a></h2>
<?php endif; ?>
  <?php if ($submitted): ?>
    <span class="submitted"><?php print $submitted; ?></span>
  <?php endif; ?>
  <div class="content clear-block">
    <?php print $content ?>
  </div>
  <div class="clear-block">
    <div class="meta">
    <?php if ($taxonomy): ?>
      <div class="terms"><?php print $terms ?></div>
    <?php endif;?>
    </div>
    <?php if ($links): ?>
      <div class="links"><?php print $links; ?></div>
    <?php endif; ?>
  </div>
</div>

Qual'è la differenza?

Grazie

Ciao
Kipper

Ogni frase (statement) in PHP dovrebbe terminare con un punto e virgola. Ma se vede che l'interprete PHP non è cosi tiranico se manca, ma segue immediatamente il terminatore del processing instruction (?>). Meglio che ci sia, perchè se viene aggiunto altro codice, allora si che salta fuori l'errore sintattico.

Più imparo, più dubito.

quindi è un errore che non ci sia? in effetti in alcuni file php di drupal è cosi

Errore no, scorretto si...

asdomar wrote:
quindi è un errore che non ci sia? in effetti in alcuni file php di drupal è cosi

Se forse un errore (dal punto di vista del'interpreter) presenterebbe una bella pagina, con tanto di testo in rosso - prova mettere un = qui e la per vedere... Ma con il mancante punto e virgola ovviamente non lo fa. Comunque rimane una trappola 'in aguato'.

Può succedere in altri linguaggi come JavaScript dove l'ultimo frase (statement) prima della graffe chiusa (}) non ha bisogno del punto e virgola. Ma se aggiungi una riga o hai anche aggiunto il punto e virgola o diventa un errore sintattico. Per principianti sarebbe un bel rompicapo...

In sintesi non è un errore, ma è meglio non farlo. La vita di un programmatore è già sufficientemente incassinato...

Più imparo, più dubito.

Ciao Jhon,
quindi dovrebbe essere buona norma mettere i ";" dove mancano (almeno nei node.tpl.php e nei page-node.tpl.php)!?
Comunque sia, se dovesse comparire un errore almeno sappiamo da cos'è causato (perlomeno al 90%).

Rimane però il fatto che da Drupal una "leggerezza" di questo tipo non dovrebbe esserci o sbaglio?

Grazie come al solito per i tuoi preziosi chiarimenti e "dritte"...

Un saluto anche all'amico asdomar

Ciao
Kipper