Newsgroup: it.comp.www.php
Titolo: Due istruzioni sulla stessa linea

Volevo sapere se era possibile avere due istruzioni sulla stessa linea.
Ad es. in basic:
print "hello" : print "world"
E' possibile fare la stessa cosa in PHP?
La cosa che mi da fastidio è dover usare due linee per un IF con una sola
operazione.
if (condizione)
   operazioni
sarebbe bello un
if (condizione) {operazioni}
molto più leggibile IMHO.
Grazie,
    Marco

 molto piů leggibile IMHO.
Puoi buttare tutto su una riga, no problem.
if ($r=mysql_result(mysql_query("SELECT * FROM DB"),0)) {echo "Tutto ok: ";
echo $r;}
Ma non ti daro' mai lavoro come programmatore!
La regola e': una istruzione, una riga.
Per la leggibilita',
per la manutenzione,
per la documentazione,
per il debugging,
per estendere il programma;
Esempio:
if
($day<32){$N1=275*$month/9;$N2=($month+9)/12;$N=$N1-($N2*(1+($year-4*($year/
4)+2)/3)))+$day-30;}
Adesso il compilatore/interprete/debugger ti dice: errore in riga 1...
Auguri, dove sta?
Altro esempio
if ($h==0)$k=0;$c=0;
if ($h==1)$k=1;$c=1;
echo $c;
adesso metto $h==0;
e mi stampa 1 (e non 0). Lo capisci _subito_ perche'?
if ($h==0)$k=0,$c=0;
if ($h==1)$k=1,$c=1;
echo $c;
E qui mi stampa 0. Lo capisci _subito_ perche' e' giusto?

> operazione.
Questo intendevo.
Ovvio che, per i motivi da te esposti, fare 3 istruzioni di un if tutte in
riga rende il codice incasinato e difficile da debuggare.....
Cmq la sintassi è
if (cond) {oper;}
giusto?
Grazie e ciao

 giusto?
Puoi anche scrivere
if (cond) oper;

 credo il secondo sia più leggibile.
Il problema in questo caso sono i debugger. Se vai riga per riga nel codice
non puoi sapere in modo immediato se ha eseguito il codice del if. E questo
condiziona anche la tua lettura (quando ti sei abituato ad usare un
debugger).
passo 1:  if ($h==0)
passo 2:    $k=1;    // sappiamo ora $h==0
passo 3:  echo $k;
passo 1:  if ($h==0)
            $k=1;
passo 2:  echo $k;
vedi subito che ha saltato il $k=1; e quindi $h!=0
passo 1:  if ($h==0) $k=1;
passo 2:  echo $k;
 non sai se ha fatto lo step e devi guardare il cambiamento della variabile
$k;
***
cmq. la sintassi e' (in EBNF, finora non ho trovato una completa per il PHP,
magari qualcuno sa dove trovarla):
selection_statement ::= IF '(' expression ')' statement { ELSE statement }
statement ::= expression ';' |selection_statement | compound_statement |
iteration_statement | ';'
compound_statement::='{' { statement_list } '}'
statement_list::=(statement)+
expression ::= assignment_expression (',' assignment_expression)*
quindi puoi fare:
if (expression)
    statement;
if (expression)  {
    statement;
    statement;
}
if (expression)
    statement,statement;
if (expression, expression)
    statement;
if (expression)
    if (expression)
            statement;

giusto?
Si'. Se oper e' una operazione sola, non servono le graffe.
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

> Si'. Se oper e' una operazione sola, non servono le graffe.
Ottimo, grazie.
In caso sono pčiů operazioni diventa piů leggibile utilizzare la sintassi a
piů righe.


IIR=Incorregibile irrecuperabile rebelle.
;-)

 ;-)
Ehehe :)
A questo punto uso sempre
If (cond)
  {
  oper
  }
e sono a posto ;))

 wrote in message
news:zleV8.475$C8....@tornado.fastwebnet.it...

ROTFLMAO, no!!!
il PEAR del PHP usa la notazione (proprio per lavorare in team):
if (cond) {
    oper
}
// spazi per indent { sulla stessa riga.
leggi un po' qui:
 
http://pear.sourceforge.net/en/standards.php

// spazi per indent { sulla stessa riga.
Odio la identazione alla K&R....
Qui in ufficio la norma di identazione (c'e' pure un documento interno ufficiale sulle regole
di identazione, comprese le istruzioni su come settare il comando indent
in modo da conformare alle regole)
e' che  la { iniza sempre nella riga
successiva...
E nel caso dei for e if con una sola istruzione, va sempre usata...
-- 
Sidewinder  
---------------------------------------------------------------------
C'est magnifique, mais ce n'est pas l'Informatique.
		-- Bosquet [on seeing the IBM 4341]
---------------------------------------------------------------------

 E nel caso dei for e if con una sola istruzione, va sempre usata...
Importante che sia coerrente all'interno di un progetto.
Io per abitudine uso tutti e due, dipende con chi e cosa lavoro (In C/C++
come fai tu, PHP come il pear).
Alla fine ci sono i beautifier con i quali puoi reindentare tutto come
preferisci:
Per php ad esempio: 
http://www.bierkandt.org/beautify/