【发布时间】:2018-04-03 15:59:54
【问题描述】:
我正在尝试遍历$names 中的所有名称并使用正则表达式对其进行转换。转换很好,但我找不到遍历每个名称的方法。
目前只返回一个值:“姓名:COOPE,塞巴斯蒂安”
<!DOCTYPE html>
<html>
<head>
<title>PHP Arrays</title>
</head>
<body>
<h1>PHP Arrays</h1>
<?php
$names = array("Sebastian Coope", "Andrew Craig", "Prof Karl Tuyls", "Dr Ullrich Hustadt", "Dr Michele Zito");
foreach($names as $name){
function rewriteText($match){
$firstName = $match[2];
$surname = $match[3];
return strtoupper($surname).', '.$firstName;
}
$altered = preg_replace_callback(
"/(Mr|Ms|Mrs|Dr|Prof)?\s*(\w+)\s+(\w+)/",
"rewriteText",
$name);
echo "Name: $altered<br>\n";
}
?>
</body>
</html>
【问题讨论】:
-
error_reporting(E_ALL); ini_set('display_errors', '1');将显示 致命错误:无法重新声明 rewriteText()(之前声明过