mercredi 27 mai 2009
{$variable} (corrigé)
Dans la rubrique PHP / PEAR
${variable}s
Dans un post récent sur heredoc et newdoc
Je disais que pour HEREDOC et pour les guillemets doubles,
${variable}s; // fonctionne
{$variable}s"; // fonctionne
Donc
testé sur PHP_VERSION:5.2.5
<?php
echo '<hr />';
highlight_file ( __FILE__ );
echo '<hr />';
$salut = 'hello';
$salut_fr = 'bonjour';
$b_fr = 'yo man';
$b= 'salut';
printVar(${b} . "<br />${b}<br />{$b} ",'${b} . " ${b} {$b} "');
printVar("${$b}<br />$$b<br />" . $$b,'${$b} $$b " . $$b');
printVar("$b_fr<br />" . ${"b_fr"},'"$b_fr " . ${"b_fr"}');
printVar("${b}_fr<br />{$b}_fr",'${b}_fr {$b}_fr');
printVar("${$b}_fr",'${$b}_fr');
printVar(${$b."_fr"},'${$b."_fr"}');
//printVar("{${$b}_fr}",'${b}');
Mais depuis php 5.0
${uneFonction()} fonctionne aussi
function donneUnNomDeVariable()
{
return 'salut';
}
printVar(${donneUnNomDeVariable()},'${donneUnNomDeVariable()}');
// FATAL ERROR printVar("{$donneUnNomDeVariable()}",'"{$donneUnNomDeVariable()}"');
// FATAL ERROR printVar("${$donneUnNomDeVariable()}",'"${$donneUnNomDeVariable()}"');
printVar(${donneUnNomDeVariable()}."_fr",'${donneUnNomDeVariable()}."_fr"');
printVar(${donneUnNomDeVariable()."_fr"},'${donneUnNomDeVariable()."_fr"}');
/**
* Affiche le contenu de la variable
*
* @param mixed $var la variable dont il faut afficher le contenu
* @param string $varName le label
* @return boolean true
*/
function printVar($var, $varName = '@') {
static $varStaticInutile = '3';
$varStaticInutile = 5;
$bt = debug_backtrace ();
if (is_array ( $bt ))
$bt = array_reverse ( $bt );
else {
$bt = array (array ('line' => '' ) );
}
echo '<p>' . "\n" . '[' . $varName . '] (line:' . $bt [0] ['line'] . ') : ' . "\n" . '<pre style="color:red">' . "\n" . var_export ( $var, 1 ) . '</pre>' . "\n" . '</p>' . "\n";
return true;
}
?>
[${b} . " ${b} {$b} "] (line:12) :
'salut
salut
salut '
[${$b} $$b " . $$b] (line:13) :
'hello
$salut
hello'
["$b_fr " . ${"b_fr"}] (line:14) :
'yo man
yo man'
[${b}_fr {$b}_fr] (line:15) :
'salut_fr
salut_fr'
[${$b}_fr] (line:16) :
'hello_fr'
[${$b."_fr"}] (line:17) :
'bonjour'
[${donneUnNomDeVariable()}] (line:27) :
'hello'
[${donneUnNomDeVariable()}."_fr"] (line:30) :
'hello_fr'
[${donneUnNomDeVariable()."_fr"}] (line:31) :
'bonjour'


3
-





