mageekblog - PHP : les nouvelles du front #380 - CommentairesLe blog personnel de Frédéric Hardy. Au menu, PHP, agilité, FreeBSD, cuisine et photographies.2021-12-02T08:20:54+01:00Frédéric Hardyurn:md5:26874ca5b8cd4cac8d08b0e68e64f63aDotclearPHP : les nouvelles du front #380 - Matthieuurn:md5:0b0c4b038f84d2d3a54488a41209001c2011-04-08T19:23:05+02:002011-04-09T11:55:02+02:00Matthieu<p>« Sébastian Bergmann, le créateur de PHPUnit, a de son côté proposé un patch qui permet de limiter la profondeur d'analyse de la fonction debug_backtrace() via l'ajout d'un argument. »</p>
<p>YES ! Enfin ! Ça permettra enfin aux implémentations de classes "Friend" d'être un peu moins gourmandes en ressources, cf : <a href="http://blogs.codes-sources.com/madmatt/archive/2009/12/18/simuler-des-classes-friend-en-php.aspx" title="http://blogs.codes-sources.com/madmatt/archive/2009/12/18/simuler-des-classes-friend-en-php.aspx." rel="nofollow">http://blogs.codes-sources.com/madm...</a> Je me souviens d'ailleurs d'un échange plus vieux à propos de cette fonctionnalité de classes "Friend", et Sebastian était intervenu en proposant une solution de ce genre, qui permettrait de les implémenter de manière plus propre, sans toutefois imposer le concept de classe Friend au langage.</p>PHP : les nouvelles du front #380 - Guileurn:md5:76230dbd82694b615281c8d9cd7417832011-04-08T14:28:24+02:002011-04-08T15:12:41+02:00Guile<p>Je suis content d'apprendre ça : le debug_backtrace limité peut être d'une très grande utilité, tout comme la nouveauté du ternaire. Néanmoins, y a-t-il une précision sur ceci? Car, de tête, faire un test du style</p>
<pre>if ($users\['login'\])</pre>
<p>lève un warning quand la clé n'existe pas, ce que la fonction empty permet d'éviter.<br />
Alors la ligne</p>
<pre>echo $users\['login'\] ?: 'Login not set.' . PHP_EOL;</pre>
<p>va-t-elle lever un warning ?</p>
<p>Je cherche également un moyen propre et court d'écrire l'équivalent SQL de isnull(variable, 'vide').<br />
Soit une fonction au prototype :</p>
<pre>isnull(&$variable, $defaultvalue)</pre>
<p>Ou bien (d'où le fait que j'en parle ici) avec un opérateur "ternaire combiné" par exemple :</p>
<pre>$variable ?= $defaultvalue;</pre>
<p>ou moins joli</p>
<pre>$variable ?:= $defaultvalue;</pre>
<p>Ces trois exemples affecteraient la valeur $defaultvalue quand empty($variable) == true. Soit l'équivalent de :</p>
<pre>if (true === empty($variable)) {
$variable = $defaultvalue;
}</pre>
<p>Vous en pensez quoi ?</p>PHP : les nouvelles du front #380 - mageekguyurn:md5:53b89e3d4594492124c21c9def10cd8b2011-04-08T09:28:00+02:002011-04-08T08:29:05+02:00mageekguy<p>@<a href="http://blog.mageekbox.net/?post/2011/04/07/PHP-%3A-les-nouvelles-du-front-380#c2876" rel="nofollow">Mathieu ROBIN</a> : Le nom de la version n'est pas encore choisi, mais il y a de fortes chances que ce ne soit pas 6, et 5.4 revient régulièrement, mais ça ne correspond pas à une majeure.</p>PHP : les nouvelles du front #380 - Mathieu ROBINurn:md5:0265e5071bba483512eec9f7b452c5112011-04-08T09:24:01+02:002011-04-08T08:27:55+02:00Mathieu ROBIN<p>Du coup, j'ai une question qui me trotte. La prochaine version, ça sera quoi du coup? 5.4, 6 quand même ou 7?<br />
J'aime beaucoup l'idée du support de isset() et empty() dans les ternaires, abusant de cette structure dans mon code...</p>