par
zeus » 20 nov. 2009, 12:26
Bonjour,
Quand tu écris
$fonction="eregi('biii', $str) or eregi('ibiii', $str)";
tu ne définis pas une fonction, tu ne fais que mettre une chaine dans une variable.
Donc, quand tu fais
îf($fonction)
PHP teste la variable, trouve une chaine non nulle, et considère donc que c'est vrai.
Si ton but premier était de mettre le résultat du test dans la variable, il faut écrire :
$fonction = (eregi('biii', $str) or eregi('ibiii', $str));
Et si ton but était de créer un fonction anonyme (une fonction déclarée à la volée, qui n'as pas de nom, et qui peut aussi être appelée lambda), il aurait fallu écrire :
$function = function($str) { return eregi('biii', $str) or eregi('ibiii', $str) };
if( $function($str) )
{
// ...
}
Bonjour,
Quand tu écris
[php]$fonction="eregi('biii', $str) or eregi('ibiii', $str)";[/php]
tu ne définis pas une fonction, tu ne fais que mettre une chaine dans une variable.
Donc, quand tu fais
[php]îf($fonction)[/php]
PHP teste la variable, trouve une chaine non nulle, et considère donc que c'est vrai.
Si ton but premier était de mettre le résultat du test dans la variable, il faut écrire :
[php]$fonction = (eregi('biii', $str) or eregi('ibiii', $str));[/php]
Et si ton but était de créer un fonction anonyme (une fonction déclarée à la volée, qui n'as pas de nom, et qui peut aussi être appelée lambda), il aurait fallu écrire :
[php]
$function = function($str) { return eregi('biii', $str) or eregi('ibiii', $str) };
if( $function($str) )
{
// ...
}
[/php]