|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2001-05-10 18:11 UTC] mstearne at entermix dot com
Variable variables techniques do not work when one of the
"variables" is a constant. The example below illustrates
this. This is probably the desired behavior for constants,
but was confusing for me when I was trying to figure it out.
The alternative I used was to add the variables I needed to
the $GLOBALS array instead of defining them as constants.
<?php
define("DB_X_NAME","database1");
define("DB_Y_NAME","database2");
$DB_Z_NAME="database3";
function connectTo($databaseName){
global $DB_Z_NAME;
$fullDatabaseName="DB_".$databaseName."_NAME";
return "\"".${$fullDatabaseName}."\"";
}
print "DB_X_NAME is ".connectTo("X")."
";
print "DB_Y_NAME is ".connectTo("Y")."
";
print "DB_Z_NAME is ".connectTo("Z")."
";
?>
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 18:00:01 2025 UTC |
I'm not trying to change the constant value, but there should be an interface for referencing constants similar to how variables can be added. If I have constants called: MY_CONSTANT_1 and MY_CONSTANT_2 I should be about to form a variable that reference those names like: define("MY_CONST_1","database1"); define("MY_CONST_2","database2"); $prefix="MY_CONST_"; $whichConst="1"; $thisConst=$prefix.$whichConst."<BR>"; print $$thisConst; $whichConst="2"; $thisConst=$prefix.$whichConst; print $$thisConst; That would output: database1 database2