我必须将preg_replace转换为preg_replace_callback 旧的preg_replace正在从数组中获取字符串和替换
add_filter( 'woocommerce_format_sale_price', 'dcwd_sale_price', 20, 3 );
function dcwd_sale_price( $price, $regular_price, $sale_price ) {
if( $sale_price > 0 )
return wc_price( $sale_price );
else
return wc_price( $regular_price );
}
原来的preg_replace是
'size'=> array('bbcode_id' => 5, 'regexp' => array('#\[size=([\-
\+]?\d+)\](.*?)\[/size\]#uise' => "\$this->bbcode_size('\$1', '\$2')"))
$this->message = preg_replace($regexp, $replacement, $this->message);
'size'=> array('bbcode_id' => 5, 'regexp' => array('#\[size=([\-
\+]?\d+)\](.*?)\[/size\]#uis' => function($matche
return $this->bbcode_size('$matches[1]',' $matches[2]');
}
)),
问题是当我在函数中添加双引号时 数组工作正常,并给我输出
$this->message = preg_replace_callback($regexp,
$replacement, $this->message
);
我删除了双引号,相反的没有发生错误,但数组没有获取变量值 输出:
[size=200]some text to test[/size]