我有一系列形式的字符串:
{ method_name { $key1 = 'quoted value' , $key2 = __('literal value'); }}
// Missing method_name and final semi-colon
// Still valid
{{ $key1 = 'quoted value' , $key2 = __('literal value') }}
// Optional key values
{ method_name { $key1 = , $key2 = __('literal value'); }}
{ method_name { $key1, $key2 = __('literal value'); }}
// Any number of values
{ method_name { $key1 = 'quoted value' , $keyN = 3.14; }}
目前,我使用一系列preg_split
和trim
。这是自定义模板引擎的一部分,它method_name
通知解析器调用哪个方法,$key = value
并将作为数组传递给该方法。这些字符串嵌入在 HTML 模板中,并且可以重复该 DOM 结构。把它想象成一个表,每一行/列都有不同的值。键是列详细信息(名称、可排序等),该方法将填写单元格的详细信息。
我遇到的问题是速度。
Q1。我怎样才能用一个表达式做到这一点?
Q2。我会获得任何速度吗?
Q3。如果我缓存了结果,可读性是否优于有点复杂的正则表达式?
Q4。有什么办法可以重组字符串以提高性能?
理想情况下,我只想扫描字符串一次,将其转换为 PHP 代码,并在eval
每次需要使用时执行一次。