字符串PHP中的preg_替换常量

字符串PHP中的preg_替换常量,php,preg-replace,constants,Php,Preg Replace,Constants,我定义了常数: defined('site_name') OR define('site_name', 'Ses'); 如何用常量替换字符串中的变量 defined('site_name') OR define('site_name', 'Ses'); $string = 'Some string with {site_name} constant'; $result = preg_replace("/{.*?}/", CONSTANT, $string); 您需要使用捕获组捕获常量(),

我定义了常数:

defined('site_name') OR define('site_name', 'Ses');
如何用常量替换字符串中的变量

defined('site_name') OR define('site_name', 'Ses');
$string = 'Some string with {site_name} constant';

$result = preg_replace("/{.*?}/", CONSTANT, $string);

您需要使用捕获组捕获常量
()
,在回调中使用它,并使用
常量
访问字符串名称的常量:

$result = preg_replace_callback("/{(.*?)}/",
                                function($m) {
                                    return constant($m[1]);
                                }, $string);

您需要使用捕获组捕获常量
()
,在回调中使用它,并使用
常量
访问字符串名称的常量:

$result = preg_replace_callback("/{(.*?)}/",
                                function($m) {
                                    return constant($m[1]);
                                }, $string);

我收到一个错误
消息:类关闭的对象无法转换为字符串
我收到一个错误
消息:类关闭的对象无法转换为字符串
请添加一些尝试。谢谢,请添加一些您的尝试。谢谢