le ';'

Eléphant du PHP | 75 Messages

22 juin 2012, 16:00

Bonjour,

Dans cet exemple,
<?PHP

// DATA PROTECTION //

	$COUNT_COUNT_ACCOUNT = HTMLENTITIES($ACCOUNT['login']);
	$COUNT_COUNT_PLAYER = HTMLENTITIES($PLAYER['name']);
	$COUNT_COUNT_GUILD = HTMLENTITIES($GUILD['name']);
	$COUNT_COUNT_PLAYER_DELETED = HTMLENTITIES($PLAYER_DELETED['name']);
	$COUNT_COUNT_JINNO = HTMLENTITIES($PLAYER_JINNO['empire']);
	$COUNT_COUNT_CHUNJO = HTMLENTITIES($PLAYER_CHUNJO['empire']);
	$COUNT_COUNT_SHINSOO = HTMLENTITIES($PLAYER_SHINSOO['empire']);
	$COUNT_COUNT_MAN = HTMLENTITIES($SEX_MAN['job']);
	$COUNT_COUNT_WOMAN = HTMLENTITIES($SEX_WOMAN['job']);
	$COUNT_COUNT_NINJA = HTMLENTITIES($JOB_NINJA['job']);
	$COUNT_COUNT_SURA = HTMLENTITIES($JOB_SURA['job']);
	$COUNT_COUNT_SHAMAN = HTMLENTITIES($JOB_SHAMAN['job']);
	$COUNT_COUNT_WARRIOR = HTMLENTITIES($JOB_WARRIOR['job']);
?>
La toute dernière ligne,

$COUNT_COUNT_WARRIOR = HTMLENTITIES($JOB_WARRIOR['job']);

J'ai lu que le ";" à la fin d'une instruction, n'était pas obligatoire, pourquoi ?

ViPHP
xTG
ViPHP | 7331 Messages

22 juin 2012, 18:14

Parce que c'est la fin de ton fichier, donc comme il n'y a rien à évaluer derrière PHP ne peut pas faire d'erreur de syntaxe.

Eléphant du PHP | 75 Messages

22 juin 2012, 21:29

D'accord :) Merci

Mammouth du PHP | 2278 Messages

22 juin 2012, 22:05

une stupidité de plus de php!
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

ViPHP
xTG
ViPHP | 7331 Messages

22 juin 2012, 22:16

une stupidité de plus de php!
Oui c'est vrai que leur analyse grammaticale est à chier...
Mais pour avoir travailler sur un projet de ce type ce semestre je dois bien avouer que c'est pas facile quand on accepte le multi-lignes. ^^'

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 juin 2012, 22:36

Je rejoint également sirakawa. La tolérance de php n'en fait pas une bonne pratique pour autant et il vaut mieux toujours mettre un point-virgule à la fin de tes instructions (ca évitera notamment le jour où tu rajoutes une nouvelle instruction à la fin de ton fichier, de t'arracher les cheveux à comprendre pourquoi tout d'un coup le code d'origine ne fonctionne plus ;))
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 267 Messages

22 juin 2012, 22:40

salut,

le ';' est le séparateur d'instructions en PHP (et dans bcp de langages d'ailleurs)
par conséquent, si ton programme ne comporte qu'une instruction, le ';' est totalement inutile
si ton programme en comporte 2, il faut un ';' entre les 2 instructions
si ton programme en comporte n, il faut un ';' :
- entre la 1ère instruction et la 2ème
- entre la 2ème et la 3ème
- ...
- entre la (n-1)ième et la n-ième
mais pas à la fin de ta n-ième instruction

@+
dix2

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 juin 2012, 18:33

Tiens un écho ? ;)

Sinon il est de même pour le dernier ?> d'un fichier qui est facultatif.

En général les gens apprécient pour pas être emm**** avec les sessions XD

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 3 Messages

23 juin 2012, 19:50

Oui c'est vrai que leur analyse grammaticale est à chier.
Image

Eléphant du PHP | 267 Messages

23 juin 2012, 20:20

Tiens un écho ? ;)
???
Sinon il est de même pour le dernier ?> d'un fichier qui est facultatif.
bah justement, la raison principale qui fait que le ';' à la fin de la dernière instruction est facultatif est différente de celle du caractère facultatif du '?>' en fin de fichier

Contrairement à ce qu'on pourrait penser en regardant du code PHP, le ';' n'a pas pour rôle de clôturer une instruction mais celui de séparer 2 instructions alors que le '?>' a bien pour rôle de clôturer un script PHP
Le '?>' est facultatif en fin de fichier et est déconseillé à cause, il me semble, des inclusions de fichiers

@+
dix2

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

23 juin 2012, 21:37

1/ tu a juste un peu répéter ce qui a été dit avant ^^

2/ séparer, finir, la plus part du temps la différence est mince.
Le tout c'est de savoir pourquoi on l'utilise ;)

La non fermeture c'est principalement pour les soucis de fin de fichier foireuse couplée à un header ;)

Enfin le principal c'est que la question est eu une réponse.


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 267 Messages

23 juin 2012, 22:07

justement, je comprends pas pourquoi certains disent que l'analyseur grammatical de PHP est "à chier"
je ne l'ai jamais étudié à fond mais sur le point évoqué dans ce topic, à savoir la gestion du ';', je trouve que l'analyseur fait correctement son travail
il est même assez permissif, comme la politique du langage PHP en général, car il permet que la dernière instruction se termine par un ';'
C'est d'ailleurs cette permissivité qui m'a attiré dans le langage PHP
c'est tellement plus "fun" d'avoir un tableau avec un mélange d'int, de string, de bool ... :lol:

dix2

Eléphant du PHP | 267 Messages

23 juin 2012, 22:34

et comme on parle du langage PHP, j'en profite pour dire un grand bravo à ceux qui ont créé Mantis
je travaille actuellement dessus (customization de l'appli) et sincèrement c'est très très bien écrit
c'est vraiment "kiffant" de travailler sur du code super bien écrit
et ce n'est pas toujours le cas ...
alors encore un gros BIG UP aux dev de Mantis

++
dix2

Eléphant du PHP | 75 Messages

24 juin 2012, 13:35

Je pensais pas en arriver là avec une simple question :D.
Merci :)