字符串中变量的命名绑定?

use*_*841 1 php string data-binding

我正在寻找像 sprintf() 这样的函数,除了使用 sprintf() 您按参数顺序绑定值之外,我想要一些可以按名称绑定变量的东西。所以,如果我有 string "Hello $name! We're please to have you visit, $name!",你可以传递一个数组或其他东西并从中获取结果字符串。

类似于 PDO 语句,但仅用于纯字符串,而不是数据库查询。我可以使用什么?

use*_*291 5

preg_replace/e 或 preg_replace_callback 是你最好的选择

  $vars = array('name' => 'Joe', 'age' => 25);
  $str = "@name is @age years old";
  echo preg_replace('/@(\w+)/e', '$vars["$1"]', $str);
Run Code Online (Sandbox Code Playgroud)