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