Travailler avec les dates
Boucler sur tous les jours situés entre deux dates
$from = new DateTime('-1 month');
$to = new DateTime('now');
$inverval = DateInterval::createFromDateString('1 day');
$days = new DatePeriod($from, $interval, $to);
/** @var DateTimeInterface $day */
foreach ($days as $day) {
echo $datetime->format('Y-m-d');
}Fonctions et paramètres
Ces fonctions qui acceptent plusieurs arguments
On le sait pour certaines, mais pas forcément pour toutes, alors qu’il est très pratique que ces fonctions acceptent plusieurs arguments afin de rendre du code plus concis et en faciliter la lecture. C’est notamment le cas de la fonction isset donc beaucoup ignorent qu’elle peut recevoir plusieurs arguments.
if (isset($arr['item1'], $arr['item2'], $arr['item3'])) {
}
unset($arr['item1'], $arr['item2'], $arr['item3']);
var_dump(isset($arr['item1'], $arr['item2'], $arr['item3']);Fonction avec un nombre inconnu de paramètres de même type
Il est possible de déclarer une fonction acceptant un nombre inconnu de paramètres ayant tous le même type.
function setContext(Context ...$contexts) {
}Multiples assignations de variables
Multiples assignations à partir d’un explode
$line = '12782;Roger;1987;Paris';
[$id, $prenom, $annee_naissance, $ville] = explode(';', $line);Multiples assignation à partir d’un foreach
$data = [
'12782', 'Roger', '1987', 'Paris',
'12783', 'Marta', '1990', 'Lyon',
];
foreach ($data as [$id, $prenom, $annee_naissance, $ville]) {
echo '<li>' . $prenom . ', né(e) en ' . $annee_naissance . ' à ' . $ville . '</li>';
}Débogage
Ajouter la méthode magique __debugInfo() à un objet permet de modifier les propriétés et valeurs de l’objet qui seront affichées lorsqu’on affichera l’objet avec la méthode var_dump().
Cela peut permettre par exemple d’afficher dans un var_dump une donnée en claire qui sera chiffrée dans l’objet.
Documentation : https://www.php.net/manual/en/migration56.new-features.php#migration56.new-features.debuginfo