我正在尝试做以下工作:
<?php
$item1 = A;
$item2 = B;
$item3 = C;
$array = array($item1, $item2, $item3);
function myFunction () {
if ($item = "A") {
echo "Alpha ";
}
elseif ($item = "B") {
echo "Bravo ";
}
elseif ($item = "C") {
echo "Charlie ";
}
else {
echo "Error";
}
}
foreach ($array as $item) {
myFunction ();
}
?>
预期效果是,对于每个项目,如果值为A
,echo "Alpha"
,B
echo "Bravo"
和C
echo "Charlie"
。
但是,输出如下:
Alpha Alpha Alpha
错误日志中没有错误,所以我猜我必须犯一些与语法无关的错误。我在echo $item;
之前添加了myFunction
,输出如下:
AAlpha BAlpha CAlpha
这意味着$ item已正确分配A,B和C.为什么myFunction不能像预期的那样工作?
提前致谢!
答案 0 :(得分:2)
1)=
是赋值运算符,不能用于比较。请改为==
或===
。
2)您已分配$item1 = A
但已比较$item = "A"
。但A
和"A"
通常不同。
3)您没有将$item
传递给该函数。
在第一个if
声明中,您将"A"
分配给$item
,然后打印"Alpha"
“如果"A"
”。
您的代码可能看起来像这样:
<?php
$item1 = "A";
$item2 = "B";
$item3 = "C";
$array = array($item1, $item2, $item3);
function myFunction ($item) {
if ($item == "A") {
echo "Alpha ";
}
elseif ($item == "B") {
echo "Bravo ";
}
elseif ($item == "C") {
echo "Charlie ";
}
else {
echo "Error";
}
}
foreach ($array as $item) {
myFunction ($item);
}
?>
答案 1 :(得分:1)
在您的函数上设置$ item parametar。
$item1 = "A";
$item2 = "B";
$item3 = "C";
$array = array($item1, $item2, $item3);
function myFunction($item){
if($item == "A"){
echo 'Alpha'.'<br/>';
}
elseif ($item == "B") {
echo 'Bravo'.'<br/>';
}
elseif ($item == "C") {
echo 'Charlie'.'<br/>';
}
}
foreach ($array as $item) {
myFunction($item);
}
答案 2 :(得分:1)
另外,你要将变量传递给你的函数还是什么?否则,就像现在一样,它应该只输出“错误”。
你的功能没有参数。
foreach ($array as $item) {
myFunction ();
}
如何传递$ item以便您的函数可以实际工作:
function myFunction($item) {
因此:
foreach($array as $item) {
myFunction($item);
}
答案 3 :(得分:0)
<?php
$item1 = "A";
$item2 = "B";
$item3 = "C";
$array = array($item1, $item2, $item3);
function myFunction ($item) {
if ($item == "A") {
echo "Alpha ";
}
elseif ($item == "B") {
echo "Bravo ";
}
elseif ($item == "C") {
echo "Charlie ";
}
else {
echo "Error";
}
}
foreach ($array as $item) {
myFunction ($item);
}
?>