Bonjour,
Merci pour ce tuto qui va me permettre de faire le lien entre bloc code et scenario.
Avec votre paragraphe ci-dessous, je comprends mieux pourquoi la plupart du temps, vous utilisez les apostrophes pour délimiter les chaines de caractères.
“string” ou ‘string’ sont des chaînes de caractères. Toutefois, notez la différence entre les double-quote et simple-quote. Dans une “string”, php va rechercher des variables pour les traduire, ce sera donc plus lent qu’une ‘string’. Donc utilisez toujours des simple-quote dans ce cas, sauf si vous savez pourquoi. ex:
Dans les faits, ce n’est pas plus lent.
Ce code exécuté en dehors de Jeedom:
$nb = 1000000;
$a = 'TEST';
echo 'Nbre de boucles : ' .$nb .'<br/>';
$time_start = microtime(true);
for($i=0;$i<$nb;$i++)
$b= 'Duree ' .$a .' ' .$i;
$time_end = microtime(true);
echo 'A [\'Duree \' .$a .\' \' .$i] ' .$b .' ' .round($time_end - $time_start,3).'<br/>';
$time_start = microtime(true);
for($i=0;$i<$nb;$i++)
$b= "Duree " .$a ." " .$i;
$time_end = microtime(true);
echo 'B ["Duree " .$a ." " .$i] ' .$b .' ' .round($time_end - $time_start,3).'s<br/>';
$time_start = microtime(true);
for($i=0;$i<$nb;$i++)
$b= "Duree $a $i";
$time_end = microtime(true);
echo 'C ["Duree $a $i"] ' .$b .' ' .round($time_end - $time_start,3).'s<br/>';
donne les résultats suivants sur ma Smart
Nbre de boucles : 1000000
A ['Duree ' .$a .' ' .$i] Duree TEST 999999 0.823
B ["Duree " .$a ." " .$i] Duree TEST 999999 0.822s
C ["Duree $a $i"] Duree TEST 999999 0.58s
Pas de différence flagrante entre ’ et " quand il y a des concaténations.
Et dès qu’il y a une variable à insérer dans un message, entre " c’est plus rapide.
Donc pas besoin de faire un paragraphe parlant de lenteur, ni de rectifier mes PRs 