
+134 | Une nouvelle fois, mon collègue avec "10 ans d'expérience en PHP" : "Toujours mettre un exit(0); après un 'return' unique par fonction, c'est plus safe". PEBKAC. #04733 - 30/12/11 par Toto - Bel exemple de PEBKAC ! - C'est toi le PEBKAC !Merci d'avoir voté ! |
![]() | ![]() ![]() ![]() ![]() | ![]() |

![]() |
![]() | |||
| "plus safe" ou "plus sale" ? Parce que mettre des lignes de code inutiles... | ||||
![]() |
|
![]() |
![]() |
![]() | |||
| Non, il a raison, c'est un règle de bonne pratique, comme mettre un "else" avec "int x; x = x;" pour tous les "if" : c'est le seul moyen de coder proprement. (... réellement, j'ai vu des gens le faire.) | ||||
![]() |
|
![]() |
![]() |
![]() | |||
| @IlARaison : J'ai vu récemment en TMA (donc dans du code en production chez un client) des "if (truc = true)". Ca m'a rappelé l'école d'ingé en première année on faisait presque tous ça. Certains n'ont visiblement toujours pas compris que tester un booléen est inutile. | ||||
![]() |
|
![]() |
![]() |
![]() | |||
| @Acorah, c'est pas si inutile que ça la preuve ci dessous -> if($false=true) { switch($false) { case 0: $false = !$false;break; case 1: $false = $false:break; case default: $false = "omg ! this code is alive !!!" } } |
||||
![]() |
|
![]() |
![]() |
![]() | |||
| Euh... les gars, on parle de PHP là, donc l'évaluation d'égalité se fait avec "==". Donc Ccccccombo pebkac pour @Acorah et @404 :D @Toto pour ton ami... je serais curieux de voir un de ses codes |
||||
![]() |
|
![]() |
![]() |
![]() | |||
| Vu que PHP est non typé, utiliser « … == true » (voire « … === true ») est parfois indispensable. En pratique c'est plus souvent « false » qu'il faut tester, à cause de fonctions qui peuvent renvoyer aussi bien « false » que 0 avec des significations différentes (par exemple lors de la lecture d'un fichier caractère par caractère : 0 = caractère nul et false = rien à lire). | ||||
![]() |
|
![]() |
![]() |
![]() | |||
| @Moi : même si le test d'égalité se fait avec "==" (et "==="), on peut très bien mettre "=" dans le if. Dans le code de @404, on rentre dans le case 1 puisque false a été défini à true DANS le if (faut aussi corriger les erreurs de ";" et le "case default" sinon ca marche pas) . Enfin bon c'était surtout pour balancer un bout de code qui sert à rien sauf à ceux qui sont encore payés à la ligne. | ||||
![]() |
|
![]() |
![]() |
![]() | |||
| @404 : ah oui en effet on voit de suite l'utilité :D |
||||
![]() |
|
![]() |
![]() |
![]() | |||
| @juu d'accord, on peut, mais dans ce cas ce n'est plus une évaluation d'expression mais une affectation, qui rend le if caduque ;) | ||||
![]() |
|
![]() |
![]() |
![]() | |||
| @Moi : J'ai oublié un '=' en recopiant (certains langages n'utilisent qu'un seul = pour les tests, mais là c'était du C# donc c'était bien "=="). Mon commentaire ne s'adressait pas aux codeurs php en particulier (pour ça que j'avais pas précisé le langage), je soulignais juste que tomber sur du code parfaitement inutile ça arrive. Là ça reste tout à fait compréhensible, mais quand le type a codé comme un goret ça peut vite virer à l'horreur niveau maintenance. |
||||
![]() |
|
![]() |
![]() |
![]() | |||
| Permalien se rend compte qu'il n'a rien posté sur ce pebkac et corrige tout de suite son erreur. | ||||
![]() |
|
![]() |
![]() |
![]() | |||
| J'ai beau savoir que c'est de l'ironie, ces codes, ça me pique les yeux. Si au bout de 10 ans, le mec il a rien compris, rien testé, il peut sévèrement se remettre en question. |
||||
![]() |
|
![]() |