我有一个 PHP 源代码存储在一个变量中,我想在其中用正则表达式进行替换。
return
我想在源代码中存在的每个语句前面附加一个自定义方法调用。
目前我正在这样做:
<?php
$code = '
class SomeClass
{
public function TestMethod ( )
{
$count = 0;
if ( $count = 2 )
return false;
if ( $count == 4 )
{
return;
}
}
public function TestMethod ( )
{
return SomeCalculatedValue (4 + 10 );
}
} ';
$code = preg_replace ( '~return~', 'someFunc(); return', $code );
echo '<pre>';
echo $code;
echo '</pre>';
这基本上有效。我唯一的问题是return
这样的陈述:
if ( $count = 2 )
return false;
这return
没有封装在任何大括号中,这使得:
if ( $count = 2 )
someFunc(); return false;
和这个不一样:
if ( $count = 2 ) {
someFunc(); return false;
}
所以基本上我想要做的是添加这些括号,如果它们丢失了。
我知道您可以使用正则表达式“向前看”和“向后看”(尽管我仍然对它们感到不舒服)以确定括号是否在那里。但是,如果 a 中缺少括号,是否还有一种方法可以添加括号preg_replace
?
任何人都知道如何做到这一点?