如何实现以下功能,我希望在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或'}'中 第154行/home/teamwork/public_html/clients/ciw/datatest/index.php
当将echo更改为case时,它会消除错误,但不会输出任何内容。
答案 0 :(得分:1)
在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;
}
答案 1 :(得分:0)
你有一些奇怪的事情发生。
首先 - 你的“开关”和你的第一个“案例”之间有两个回声。这没有意义。如果您希望始终输出,请在“swtich”
之前移动它其次 - 你在“休息”之后和下一个“案例”之前有回声。此代码无法访问。如果没有将测试用例放在一起,我无法确定,但也可能无法通过语法检查。
第三 - 你似乎将你的外观中的“$ field”视为一个数组(你引用$ field ['name'])和一个类(你引用$ field-&gt; value)。我怀疑一旦修复回声问题,你将会遇到更多问题。试图建立一个测试用例来证明解决方案让我头疼,因为这可能只是因为我不知道xmlObject中的内容!
答案 2 :(得分:0)
在您的交换机案例中进行少量修改:试试这个并检查它是否有帮助:
<?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;
}
}
?>
有关详细信息,请参阅official documentation