Мой пример:Заменить же именем переменной PHP
$name = "Simon";
$string = "My name is [name].";
echo preg_replace("/\[(.*)]/", ${"$1"}, $string);
// Expected: My name is Simon.
// I get: My name is .
// ${"$1"} should be $name?
exit();
Когда я только:
echo preg_replace("/\[(.*)]/", "$1", $string);
// I get: My name is name.
// $1 = name
Что я делаю не так? Почему PHP не использует сгенерированный $ name var? Это только пример. Я хотел бы работать это с какой-либо замены:
[foo] --> $foo
[bar] --> $bar
...
echo str_replace ("[name]", $ name, $ string); – Asik
Эй, Асик, я не хочу использовать str_replace, потому что я хочу сделать это с гораздо большим количеством варов. Я хочу работать с любой заменой. '[foo]> $ foo',' [bar]> $ bar' и т. д. Я не хочу использовать массивы. – user2987790
Есть ли особая причина, по которой вы хотите использовать 'preg_replace()' и т. Д., А не просто '$ string =" My name is ". $ Name;'? Это звучит как overkill, если вы просто хотите вывести/заполнить имя пользователя. –