问题
I want to use a constant in PHP, but I also want to put it inside double quotes like a variable. Is this at all possible?
define("TESTER", "World!");
echo "Hello, TESTER";
obviously outputs "Hello, TESTER", but what I really want is something like:
$tester = "World!";
echo "Hello, $tester";
outputs "Hello, World!".
回答1:
Sorry, that's not the way constants in PHP work. You can put variables in double quotes and heredocs but not constants.
回答2:
I recomend you to use concatenation because:
- When you use a variable into a double quotes string your visibility is not good;
- When you use a double quotes string the php can to process slowly;
- You don't use a constant into a string, because don't have any delimiter to the php knows what is the constant.
回答3:
Concatenation is the way to go.
Unless you want the hokey, nasty, inefficient, evil monkey way of:
echo preg_replace("/TESTER/",TESTER,$original_content);
回答4:
no way, unless you write your own string parsing function
回答5:
I've found that when dot-concatenation of a constant is a problem, using sprintf to get my string is usually the way I want to go in the end.
回答6:
Alternatively, do
"this is " . MY_CONSTANT
or
"this is " . constant("MY_CONSTANT");
来源:https://stackoverflow.com/questions/1563654/quoting-constants-in-php-this-is-a-my-constant