[spip-dev] r124262 - in _plugins_/scssphp/trunk

C'est normal tout ces antislashs ?

Hé oui, https://github.com/scssphp/scssphp/pull/98/commits/5b898b75438164d8d3510dd3233ec4b92d3f58d5

(c’est la découverte du week end pour moi aussi, mais ça concerne pas trop le code de SPIP car on utilise pas de namespaces)

c'est le but du commit. cf https://github.com/scssphp/scssphp/issues/96
JL

Mais, justement, on ne doit pas privilégier $var === null d’après le PSR ou autre ?

a oui, malin !

en résumé de toute la discussion post PR sur la lib :
is_null($x) (et donc \is_null() si tu as un NameSpace) est totalement optimisé par Zend Compiler
alors que $x === null ne sera optimisé par le Zend Compiler qu’en PHP 8 - mais il est optimisé dans l’opcode, c’est donc pas si mauvais, mais quand même moins bien que is_null($x) en terme de perormance.

Bon faut pas couper les cheveux en 4 non plus, la différence n’a d’intérêt que si tu cherches les derniers pouillèmes et que tu es par exemple dans une boucle avec beaucoup beaucoup d’itérations.

Par contre le is_null() dans un namespace est lui très mauvais, il faut donc faire attention à ce qu’on fait.

On peut dire en conclusion
* avec $x === null tu sera toujours sur d’être relativement bon et c’est future proof,
* avec \is_null($x) c’est encore mieux mais lourd à écrire partout
* avec is_null($x) c’est aussi très bien sans namespace, mais si jamais tu as un namespace ça devient très mauvais...