|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 246 ![]() |
Bonjour tout le monde,
J'ai trouvé une syntaxe que je ne connait pas dans une appli : Code :
Est ce que cette syntaxe est correct ? Est-ce que c'est indispensable dans ce cas ? Merci |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
C'est ce qu'on appelle un opérateur de bit, dans ton cas c'est une opération AND. Il existe par ailleurs OR, XOR et NOR et les shifts.
Toutes les infos sont dans le manuel, comme à chaque fois Le fait de faire != 0 se résume à vérifier de façon booléenne que le AND sur le bitfield par le masque n'est pas vide. Exemple: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
Euh je pense pas que ça soit ça la question, mais plutot le "!=0" en dehors des parenthese.
En gros pour un cadre général il serait possible d'écrire: ça me parait très étrange de voir un différent de zéro en dehors des parenthèse du return. bon ensuite j'ai peut-etre pas compris la réponse EDIT: après relecture, une tite question, ta réponse veut dire: reviens au même que: ou Code :
return ($a & $b != 0 ? $a & $b : Sinon quoi?);
__________________
Pas de solution, pas de probleme ![]()
|
|
|
00
|
|
|
#4 | |
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 246 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 |
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
Et tu as vu ça ou? le retour de cette fonction donne quoi lorsque tu l'appelle?
une valeur ou un true/false?
__________________
Pas de solution, pas de probleme ![]()
|
|
|
00
|
|
|
#6 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
c'est juste, vu que l'opérateur bitwise est prioritaire sur l'opérateur booléen != tu peux enlever les parenthèses sans risque. Le fait qu'elles soient là ne change absolument rien au comportement.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#7 | ||
|
Membre éprouvé
![]() romain escudierDéveloppeur informatique Inscription : juin 2011 Messages : 300 ![]() |
En php les parenthese sur un return ne sont pas obligatoire?
Edit: Effectivement elle ne le sont pas, et je viens de regarder: Citation:
Citation:
Alors je suis plus que surpris Edit2: pour répondre a ta question: reviens à: Donc à: d'après la doc
__________________
Pas de solution, pas de probleme ![]()
|
||
|
|
00
|
|
|
#8 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Bien sûr que non, ni plus qu'avec include ou require d'ailleurs (contrairement à ce qu'on voit un peu partout).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#9 |
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 246 ![]() |
J'ai tester dans le code et ça fonctionne pareil avec ou sans : "!=0". Que signifie exactement cette expression ? est-ce que ça signifie que si le résultat est false on ne le renvoi pas ? comprend pas
|
|
|
00
|
|
|
#10 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
J'arrive pas à me figurer ce qui te bloque.
la syntaxe d'un return c'est: Ce que tu retourne dans ton cas c'est le résultat d'une expression booléene (valeur != 0 est un booléen). Cette expression pourrait aussi bien être une valeur, variable, void ou que sait-je encore. Au passage, si tu enlèves le != 0, tu renvoie un entier (le résultat de l'opération de bits) qui sera automatiquement évalué à true s'il est différent de 0 et à false sinon (typage faible du langage). En revanche, l'opérateur de comparaison stricte (===) lui ne passera pas.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#11 |
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 246 ![]() |
Ok, alors on peut enlever le "!=0" de la fonction et tester le bitwise après le renvoi de la fonction ?
En faisant par exemple un if(getDroits($attributDroit, $masque)) {...} Ça fonctionne tout aussi bien ? non ? |
|
|
00
|
|
|
#12 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Oui, ce sera pareil.
Sauf que tu dois avoir une instance de la classe dont tu as extrait cette méthode pour faire ça bien sûr
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#13 |
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 246 ![]() |
Ok, c'est pour cela que je voyais pas trop l’intérêt du "!=0" étant donné que le bitwise est testé après le renvoi de la fonction.
Merci Benjamin
|
|
|
00
|
|
|
#14 | |
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 246 ![]() |
Citation:
|
|
|
|
00
|
|
|
#15 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#16 |
|
Membre confirmé
![]() Vincent Développeur informatique Inscription : janvier 2009 Messages : 246 ![]() |
Non car en fait c'est un peu plus compliqué que ça. Mais on s'éloigne du sujet
|
|
|
00
|
|
|
#17 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Ah je vois, tu dois avoir un singleton ou quelque chose comme ça non ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
Copyright © 2000-2012 - www.developpez.com