Quelques trucs sur PHP #2

Une deuxième série de petits trucs sur PHP…

Page blanche

Plus j’utilise PHP, plus je me rends compte qu’il y a quand même des trucs bien foireux dedans… Notamment ceci : lorsqu’une classe contient deux définitions de la même méthode (du moins dans certains cas, j’ai pas trop approfondi pour voir si c’est vraiment systématique), on n’obtient pas d’exception, ni même la traditionnelle “fatal error” non-catchable et sans trace, mais bel et bien une page blanche sans aucune explication \o/ J’imagine que derrière PHP doit mourir lamentablement sur un “Segmentation fault”… Bref, quand vous obtenez une page blanche, pensez à vérifier si vous n’avez pas raté un copier/coller quelque part…

Duplication de tableaux

Après avoir tenté en vain de dupliquer un tableau avec le mot-clé clone (qui retourne null), j’ai cherché un peu et je suis tombé sur cet article. Donc apparemment une simple affectation suffit à dupliquer un tableau (ce qui explique au passage certaines choses concernant la quantité astronomique de mémoire qu’arrive à bouffer PHP dans certains cas) ! Comme quoi même en utilisant un langage pendant des années, on peut passer à côté de certains trucs de base…

L’instruction continue

Je parlais il y a quelque temps de l’instruction break qui admet un paramètre permettant de sortir de plusieurs boucles imbriquées d’un coup, eh bien l’instruction continue se comporte de la même façon.

Je n’avais pas insisté dessus à l’époque (parce que dans le cas du break, c’est évident) mais dans les deux cas, un switch est considéré comme une boucle. Donc si vous êtes dans un switch contenu dans une boucle et que vous voulez passer à la prochaine itération de la boucle il faut appeler un continue 2;.

Pour plus de détails sur l’instruction continue, rendez-vous sur le manuel officiel de PHP.

  • Print this article!
  • Turn this article into a PDF!
  • E-mail this story to a friend!
  • Facebook
  • Twitter
  • del.icio.us
  • Digg
  • Google Bookmarks
  • BlogMemes Fr
  • Wikio FR
  • Netvibes

Tags: , , , , ,

4 commentaires pour “Quelques trucs sur PHP #2”

  1. Glimpse dit :

    Eh oui, seuls les objets sont passés (ou affectés) via leur référence ! Et en PHP, un tableau n’est pas un objet…
    Faut faire du Java, Darathor : y’a pas ce genre de souci ! :-)

  2. Darathor dit :

    Ouaip mais bon, WordPress, phpBB et Change ils sont en PHP, pas en Java, donc pas le choix :p

    Puis bon, de mémoire y a d’autres trucs bien lourds avec Java aussi, rien n’est parfait… Mais au moins Java a pour lui d’avoir une API avec un aspect général nettement moins brouillon que PHP ^^

  3. Nagamé dit :

    “Page blanche”
    Sauf erreur, c’est simplement lié au niveau de sécurité de ton php.
    Dans le fichier de config “php.ini”, tu défini le degré d’affichage des erreurs, sachant que l’affichage d’une erreur dans le client est considéré (par php) comme une faille de sécurité en soit…
    Par contre, toutes les erreurs (et même les simples warning) sont enregistrés dans les logs

    Cdlt,
    ngm

    Ps: excellent site :)
    Bonne continuation

  4. Darathor dit :

    Je ne pense pas, parce que j’ai toutes les autres erreurs habituelles qui remontent normalement, plus les warnings dans les logs, mais dans ce cas là je n’ai aucune trace nul part :-/

    Ou alors y a une subtilité pour avoir un certain niveau mais ce serait un peu tiré par les cheveux que juste quelques erreurs exotiques soient reléguées dans un log distinct :euh:

    Après c’est peut-être lié à une version donnée de PHP qui plante précisément dans ce cas là, ça c’est bien possible…

    PS : Merci ^^

Laisser un commentaire

Vous pouvez utiliser ces tags XHTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Veuillez recopier le code de sécurité.

Ce site fait partie du réseau Edforum.net. À ce titre, il suit les règles globales du réseau, merci d'en prendre connaissance avant de poster votre message.