Can';在php数组中不改变字符串
我试图在php数组中用Can';在php数组中不改变字符串,php,Php,我试图在php数组中用和包围字符串,这是我的代码。当我运行它时,什么都不会发生 foreach($i=0;$i < count($tags); $i++){ $tags[$i] = "<p id=para>" . $tags[$i] . "<p>"; } foreach($i=0;$i
和
包围字符串,这是我的代码。当我运行它时,什么都不会发生
foreach($i=0;$i < count($tags); $i++){
$tags[$i] = "<p id=para>" . $tags[$i] . "<p>";
}
foreach($i=0;$i”$tags[$i]。“”;
}
标记是我的字符串数组。您需要这样做
foreach($tags as &$tag){
$tag = "<p id=para>" . $tag . "</p>";
}
foreach($tags as&$tag){
$tag=“”$tag。“
”;
}
&引用标记而不是复制它,这是您的问题,它不会更改实际数组中的字符串。或者使用 对于($i=0;$i
$tag[]=“”$tags[$i]。“”;
}
或使用
foreach($tg标记){
$tag[]=”“$tg.”
”;
}您的代码片段中存在一些问题 首先:您使用的是一个
foreach循环
,但提供的参数就好像它是一个for循环
生成
无效的HTML时,您的id
属性需要将值括在“
或”
中,例如:id=“para”
您的
标记没有关闭,而是紧跟着另一个标记(应该是
)
您可以使用for循环或foreach循环,但它们的工作方式不同。
for循环的编写方式与您得到的非常相似:
for($i=0;$i < count($tags); $i++) { ...
请注意&
符号在$tag
之前,&
表示它是对对象的引用,这意味着,如果在foreach循环
中更改对象,它实际上会被更改,而不仅仅是在foreach
范围内
这意味着您可以立即编辑$tag
对象,而不是从数组中访问它。
如果您宁愿从数组中访问它,但仍然希望使用foreach
,则可以通过以下方式获取索引(键)和值:
foreach($tags as $key => $value) {
$tags[$key] = 'html' . $value . 'endhtml';
}
您必须决定要使用哪一个循环。目前看来您将误认为是和foreach
循环
幸运的是,这可以通过两种方式实现
将用于
循环
如果&$tag
是引用,而不是副本,那么它会更新数组中的字符串。按照您尝试的方式,它只会更改它的副本
最后,最后一件事——如果我可以推荐的话,在指定html标记的属性时开始使用撇号/引号。它更干净、更有效、更美观。您是否忘记了以““还是仅仅是一个打字错误?此外,您还将and&foreach循环误认为是1。您正在混合使用foreach
和for
syntax 2。不要将html标记保存在数组中!(and)@Rizier123的可能副本为什么不将它们存储在数组中,直到打印它们?这可能是一个好主意,可以解释为什么这样做,特别是&
符号的作用!)
for($i=0;$i < count($tags); $i++) { ...
foreach($tags as &$tag) { ...
foreach($tags as $key => $value) {
$tags[$key] = 'html' . $value . 'endhtml';
}
for($i = 0; $i < count($tags); $i++)
{
$tags[$i] = "<p id='para'>" . $tags[$i] . "</p>";
}
foreach($tags as &$tag){
$tag = "<p id='para'>" . $tag . "</p>";
}