如何实现以下目标,我希望在switch语句中回显硬编码数据:
<?php foreach ($xmlObject->fields[0]->field as $field) {
switch((string) $field['name']) {
echo "<td>" . $c . "</td>";
echo "<td>1</td>";
case 'published':
echo "<td>" . $field->value . "</td>";
echo "<td>" . $field->value . "</td>";
break;
case 'body':
echo "<td>" . htmlentities($field->value) . "</td>";
break;
case 'title':
echo "<td>" . $field->value . "</td>";
break;
case 'summary':
echo "<td>" . $field->value . "</td>";
break;
echo "<td>publish</td>";
echo "<td>closed</td>";
echo "<td>closed</td>";
echo "<td> </td>";
case 'title':
echo "<td>" . $field->value . "</td>";
break;
echo "<td> </td>";
echo "<td> </td>";
case 'published':
echo "<td>" . $field->value . "</td>";
echo "<td>" . $field->value . "</td>";
break;
echo "<td> </td>";
echo "<td>0</td>";
echo "<td>http://www.domain.com/clients/ciw/?p=" . $c . "</td>";
echo "<td>0</td>";
echo "<td>policies</td>";
echo "<td> </td>";
echo "<td>0</td>";
//case 'parentId':
// echo "<td>" . $field->value . "</td>";
// break;
//case 'SubjectArea':
// echo "<td>" . $field->value . "</td>";
// break;
}
} ?>
我收到以下错误:
解析错误:语法错误、意外T_ECHO、预期T_CASE或 T_DEFAULT或"}" /home/teamwork/public_html/clients/ciw/datatest/index.php 在第 154 行
当将回声更改为大小写时,它会消除错误但不输出任何内容。
switch 语句中不能有没有大小写的 echo,请查看下面的代码变量$error它将给出输出
switch(true)
{
case (strlen($foo) > 30):
$error = "The value provided is too long.";
$valid = false;
break;
case (!preg_match('/^[A-Z0-9]+$/i', $foo)):
$error = "The value must be alphanumeric.";
$valid = false;
break;
default:
$valid = true;
break;
}
只需对开关盒进行少量修改: 试试这个并检查它是否有帮助:
<?php
echo "<td>" . $c . "</td>";
echo "<td>1</td>";
foreach ($xmlObject->fields[0]->field as $field) {
switch((string) $field['name']) {
case 'published':
echo "<td>" . $field->value . "</td>";
echo "<td>" . $field->value . "</td>";
break;
case 'body':
echo "<td>" . htmlentities($field->value) . "</td>";
break;
case 'title':
echo "<td>" . $field->value . "</td>";
break;
case 'summary':
echo "<td>" . $field->value . "</td>";
echo "<td>publish</td>";
echo "<td>closed</td>";
echo "<td>closed</td>";
echo "<td> </td>";
break;
case 'title':
echo "<td>" . $field->value . "</td>";
echo "<td> </td>";
echo "<td> </td>";
break;
case 'published':
echo "<td>" . $field->value . "</td>";
echo "<td>" . $field->value . "</td>";
break;
default: //default case will be executed if none of the above case is satisfied
echo "<td> </td>";
echo "<td>0</td>";
echo "<td>http://www.domain.com/clients/ciw/?p=" . $c . "</td>";
echo "<td>0</td>";
echo "<td>policies</td>";
echo "<td> </td>";
echo "<td>0</td>";
break;
}
}
?>
有关更多详细信息,请参阅官方文档
你那里发生了一些奇怪的事情。
首先 - 您的"开关"和第一个"案例"之间有两个回声。 这说不通。 如果您希望始终输出它,请将其移动到"SWTICH"之前
其次 - 您在"休息"之后和下一个"案例"之前有回声。 此代码将无法访问。 如果不将测试用例放在一起,我不能肯定地说,但它也可能无法通过语法检查。
第三 - 您似乎将外观中的"$field"视为数组(您引用$field['name'])和一个类(您引用$field->值)。 我怀疑一旦你解决了回声问题,你会遇到更多的问题。 因此,尝试构建一个测试用例来证明解决方案让我头疼,尽管这可能只是因为我不知道 xmlObject 中有什么!