PHP-如何将命名变量放入字符串中,并在变量之前定义字符串

雷神召唤师

我正在寻找pythons%运算符的php等价物

# PYTHON Example
foo = 'variable_string'
baz = 'characters'

new_string = 'my %(foo)s of %(baz)s' % locals()

我的Vague php上下文:

注意:这是为了演示为什么要执行此操作,它不反映任何代码。

// PHP Example context
class Controller {
    ...
    // Singles quotes used in intentionally
    // This template string is meant to be overloadable.
    public $template = '<h1>{$title}</h1><h2>{$subheading}</h2>'; 
    ....
}

class View {
    ...
    public function render($template) {
        $title = 'variable string';
        $subheading = 'some other variable stuff';
        // Example of the python operator
        return magically_put_variables_in_string(
            $template, 
            magically_get_named_variables_from_scope()
        );
    }
    ...
}
  • 具体来说,我想要最规范的magically_put_variables_in_string实现。
  • 我不能认为我可以使用PHP 5.3以后的版本
  • 我不介意通过一个明确的 array('$variable_name' => $variable_name)
  • 在不定义新功能的情况下进行操作的要点。

最后说明:我已经为我的特定用例构建了解决方法,但是它不能满足这个问题。

编码器

一个好的方法是strtr

strtr('<h1>{foo}</h1><h2>{bar}</h2>', array(
  '{foo}' => $foo,
  '{bar}' => $bar,
));

您也可以使用get_defined_vars()获取在当前范围内可访问的变量数组,尽管我个人更喜欢显式枚举。


对使用的细微优点strtrstr_replacestrtr搜索的字符串的已取代的部分,用于进一步的替代品。str_replace状态手册页

由于str_replace()从左到右进行替换,因此在进行多次替换时,它可能会替换先前插入的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将变量放入字符串PHP

PHP如何将查询字符串分成变量

PHP-如何将字符串变量的内容用作empty()中的变量?

如何将包含HTML标记和php变量的字符串转换为php字符串变量?

如何将循环放入字符串php?

如何将 PHP 变量封装在字符串中?(在 POST 请求正文中)

如何将连接的 MYSQL 字符串查询存储到 PHP 变量中?

如何将SQL数据库中的字符串与PHP变量进行比较

如何将特定字符串之后的所有字符串放入php中的数组中

将字符串的每一行放入PHP中的单独变量中

将变量连接到字符串在 PHP 中失败

将变量附加到php插入字符串中

PHP将字符串与存储在变量中的字符串进行比较

将PHP变量字符串插入内联字符串中无法正常工作

如何将JSON字符串转换为PHP变量?

如何将字符串添加到 PHP 变量?

如何将字符串分配给PHP变量以用于电子邮件模板?

如何在PHP中获取查询字符串变量?

如何分割字符串并存储在php变量中

如何使用php从变量中获取字符串?

如何在PHP中检测包含mysql_query字符串的字符串变量?

如何将文件数组以及java脚本中的其他字符串/int变量传递给php

如何在PHP_file_get_contents URL字符串中放入PHP变量?

从JS变量更新查询字符串中的PHP变量

如何在字符串中搜索带有变量的子字符串,并用PHP将其替换为包含该子字符串变量的内容?

PHP在字符串中使用变量

PHP的增加时间字符串变量

从字符串创建php变量

PHP类扩展字符串变量