Pre*_*fix 0 php arrays validation
首先我知道这是一个重复的问题,在这里经常被问到,但是我已经仔细研究了这些答案,但仍然无法弄清楚我的代码有什么问题.我对PHP很新,我99%肯定这是一个非常容易/新手的事情,这就是为什么它令我感到沮丧.
这是代码:
$validProgram = 0;
$validProgramCodes = array('ITFZ', 'ITFC', 'ITFP', 'ITFE', 'ITFL', 'ITFS',
'ITFF', 'ITFM', 'ITFT', 'IEME', 'ISMK', 'IPKT');
if ( isset( $_GET[ 'category' ] ) && isset( $_GET[ 'subcategory' ] )
&& $_GET[ 'category' ] != '' && $_GET[ 'subcategory' ] != '' )
{
$selectedSchool = $_GET[ 'category' ];
$selectedProgram = $_GET[ 'subcategory' ];
$selectedSchool = prepString( $selectedSchool );
$selectedProgram = prepString( $selectedProgram );
foreach ( $validProgramCodes as $temp )
{
if ( $temp == $selectedProgram )
{
$validProgram ++;
}
}
if ( $validProgram == 1 )
{
echo "success!";
}
else if ( $validProgram !== 1)
{
echo "failure!";
}
}
Run Code Online (Sandbox Code Playgroud)
}
现在......出于某种原因,无论为$ selectedProgram提供什么,验证检查都会回复失败声明.这是非常简单的代码,所以我确信这是明显的,但我想我只需要另外一双眼睛快速浏览一下.:)
感谢您的任何帮助!
if ( $validProgram = 1 ) 分配的值1来$validProgram.此赋值返回1,因此语句始终通过.
尝试if ( $validProgram == 1 )测试是否平等.
无论如何,看看整个块,看起来你将大量的内容压缩为单个in_array检查,完全删除foreach循环和$validProgram变量:
$selectedProgram = prepString( $selectedProgram );
if(in_array($selectedProgram, $validProgramCodes))
{
echo "success!";
}
else
{
echo "failure!";
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |