<?php
function try(){
$tutorial = array("D","C","B","A");
for( $i = 0 ; $i < count($tutorial) ; $i++ ){
if( $tutorial[$i] == 'A' )
$enum = 1;
else if( $tutorial[$i] == 'B' )
$enum = 2;
else if( $tutorial[$i] == 'C' )
$enum = 3;
else if( $tutorial[$i] == 'D' )
$enum = 4;
echo "$enum". "<br/>";
}
?>
当我打印出变量ENUM时,它总是空白的.. 有什么问题?
答案 0 :(得分:0)
试试这个。当您遇到类似if
的条件时,请使用==
之类的comparison运算符,而不是像=
那样的asignment operator
$tutorial = array ('A', 'B','B', 'B', 'C', 'D');
for( $i = 0 ; $i < count($tutorial) ; $i++ ){
if ($tutorial[$i] == 'A') {
$enum = 1;
}
else if( $tutorial[$i] == 'B' ) {
$enum = 2;
}
else if( $tutorial[$i] == 'C' ) {
$enum = 3;
}
else if( $tutorial[$i] == 'D' ){
$enum = 4;
}
echo $enum;
}
// prints 122234
答案 1 :(得分:0)
问题是您没有在if
语句中使用比较运算符。编写它的方式是,每次循环都会将值'A'
赋给$tutorial[$i]
。您需要使用==
或===
,如下所示:
<?php
function try(){
for( $i = 0 ; $i < count($tutorial) ; $i++ ) {
if ( $tutorial[$i] == 'A' ) {
$enum = 1;
} elseif ( $tutorial[$i] == 'B' ) {
$enum = 2;
} elseif ( $tutorial[$i] == 'C' ) {
$enum = 3;
} elseif( $tutorial[$i] == 'D' ) {
$enum = 4;
}
}
}
?>
==
比较值而不检查类型
===
比较值和类型
顺便说一句,我没有看到你如何将$tutorial
变量放入你的函数中。你没有传入它而你没有使用global
。 $tutorial
存在于哪个范围内?因为这也可能是问题所在(如果将=
更改为==
不起作用)。
答案 2 :(得分:0)
您的运算符在if
语句中不正确,因为您要分配(=
)变量而不是比较(==
或===
)。此外,您正在使用保留字try(它保留用于例外),这应该会导致各种错误。这样的事情应该有效:
function _try(){
for($i = 0 ;$i < count($tutorial) ;$i++){
if($tutorial[$i] == "A")
$enum = 1;
else if($tutorial[$i] == "B")
$enum = 2;
else if($tutorial[$i] == "C")
$enum = 3;
else if($tutorial[$i] == "D")
$enum = 4;
}
}
或者你总是可以使用控制结构switch()来解析循环:
function _try() {
for($i = 0 ;$i < count($tutorial) ;$i++){
switch($tutorial[$i]) {
case("A"):
$enum = 1;
break;
case("B"):
$enum = 2;
break;
case("C"):
$enum = 3;
break;
case("D"):
$enum = 4;
break;
default:
$enum = false;
}
}
}
答案 3 :(得分:0)
我的代码中有三个错误
try
(catch
)关键字在您的代码中用作函数名称,将名称更改为其他名称。
错过了一个大括号}
,好吧这可能是一个错字。
逻辑错误,您使用了=
代替==
或===
您现在的代码变为:
<?php
function tryThis(){
for( $i = 0 ; $i < count($tutorial) ; $i++ ){
if( $tutorial[$i] == 'A' )
$enum = 1;
else if( $tutorial[$i] == 'B' )
$enum = 2;
else if( $tutorial[$i] == 'C' )
$enum = 3;
else if( $tutorial[$i] == 'D' )
$enum = 4;
}
}
?>
修改强> 回答编辑问题....
好像你忘了打电话给这个功能.......那个改变让它对我起作用了。
<?php
function tryThis(){
$tutorial = array("D","C","B","A");
for( $i = 0 ; $i < count($tutorial) ; $i++ ){
if( $tutorial[$i] == 'A' )
$enum = 1;
else if( $tutorial[$i] == 'B' )
$enum = 2;
else if( $tutorial[$i] == 'C' )
$enum = 3;
else if( $tutorial[$i] == 'D' )
$enum = 4;
echo "$enum". "<br/>";
}
tryThis(); //functional cal here
?>