« The problem is that you can't pass literals by reference (which makes sense) ...
J'ai chopé ça, aussi : http://bugs.php.net/bug.php?idc43
PP
Sylvain SF
Mickael Wolff a écrit :
« The problem is that you can't pass literals by reference (which makes sense):
function f(&$a) {} f(45); // error
But default values must be literals (which also makes sense):
function f($a = $_POST) {} // error
c'est l'exposé du "problème": j'ai envie de dire que l'on ne traite pas ici d'une "default value" (valeur stockée par cette variable) mais bien de l'existence de cette référence.
par exemple, j'apprécierais de pouvoir écrire:
function f(&$a = new myClass()){ }
ce qui donne bien sur une erreur car seul un literal (une valeur immédiate) est attendu ici.
So there's some serious impedance mismatch going on there to make both features to work together. »
indeed.
merci pour ton suivi et report.
Sylvain.
Mickael Wolff a écrit :
« The problem is that you can't pass literals by reference (which makes
sense):
function f(&$a) {}
f(45); // error
But default values must be literals (which also makes sense):
function f($a = $_POST) {} // error
c'est l'exposé du "problème": j'ai envie de dire que l'on ne
traite pas ici d'une "default value" (valeur stockée par cette
variable) mais bien de l'existence de cette référence.
par exemple, j'apprécierais de pouvoir écrire:
function f(&$a = new myClass()){
}
ce qui donne bien sur une erreur car seul un literal (une
valeur immédiate) est attendu ici.
So there's some serious impedance mismatch going on there to make both
features to work together. »
« The problem is that you can't pass literals by reference (which makes sense):
function f(&$a) {} f(45); // error
But default values must be literals (which also makes sense):
function f($a = $_POST) {} // error
c'est l'exposé du "problème": j'ai envie de dire que l'on ne traite pas ici d'une "default value" (valeur stockée par cette variable) mais bien de l'existence de cette référence.
par exemple, j'apprécierais de pouvoir écrire:
function f(&$a = new myClass()){ }
ce qui donne bien sur une erreur car seul un literal (une valeur immédiate) est attendu ici.
So there's some serious impedance mismatch going on there to make both features to work together. »