[英]Not incrementing variable in an anonymous callback function
我试图同时使用preg_replace
和preg_replace_callback
可能是错误的方式。 我做错了什么?
$str = '/admin/companies/{company}/projects/{project}/photos/{photo}/delete';
$pattern = '/({\w+})/';
$replacement = ['str_1', 'str_2', 'str_3'];
$i = 0;
$result = preg_replace_callback($pattern, function($matches) use ($i, $replacement) {
return $replacement[$i++];
}, $str);
/admin/companies/str_1/projects/str_1/photos/str_1/delete
/admin/companies/str_1/projects/str_2/photos/str_3/delete
您想通过引用传递$i
,所以当您用$i++
递增它时,它会被更新:
$result = preg_replace_callback($pattern, function($matches) use (&$i, $replacement) {
return $replacement[$i++];
}, $str);
注意$i
之前的&
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.