Par référence, erreur ou notice ?
<?php
const A = 1;
function &foo(&$a) {
return [];
}
$a = 1;
$a = foo($a);
// Notice: Only variable references should be returned by reference
foo(1);
// Fatal error: Uncaught Error: foo(): Argument #1 ($a) cannot be passed by reference
?>
Passer un littéral par référence à une méthode provoque une erreur fatale, tandis que retourner un littéral par référence ne déclenche qu’une notice. Cette différence de niveau d’erreur est surprenante, étant donné la similitude des opérations. Cela soulève la question : pourquoi l’une arrête-t-elle complètement l’exécution, tandis que l’autre se contente d’émettre un avertissement et continue ?
See Also
PHP Features
Last updated: 22 October 2026