我目前正在编写一种下载管理器,我在问自己这是否可能:
if($ext == ('zip' || 'png')) { echo "Is it possible ?" }
它每次都返回true,所以我想这是不可能的。但是您知道我如何轻松做到这一点吗?我的意思是,没有大量的“如果”或“开关”......
不管怎么说,还是要谢谢你 !:)
我目前正在编写一种下载管理器,我在问自己这是否可能:
if($ext == ('zip' || 'png')) { echo "Is it possible ?" }
它每次都返回true,所以我想这是不可能的。但是您知道我如何轻松做到这一点吗?我的意思是,没有大量的“如果”或“开关”......
不管怎么说,还是要谢谢你 !:)
你可以使用in_array($ext,array('png','zip','another','more'))
见这里: http: //php.net/manual/en/function.in-array.php
if($ext == ('zip' || 'png'))
正在按以下顺序进行比较 -> ('zip' || 'png')
,因为至少有一个不为空,所以返回 TRUE。将其替换为现在,($ext == TRUE)
,我将竭尽全力并猜测 php 只是在评估它($ext)
,这也是正确的。
if ( $ext == 'zip' || $ext == 'png' )
将检查您要查找的内容。
您可以使用switch-case语句:
switch($ext)
{
case 'png':
case 'zip':
// Will run for both 'png' and 'zip'
echo "It is possible";
break;
default:
echo "unknown extension!";
break;
}
您可以使用正则表达式,例如
if(preg_match("/^(zip|png)$/", $ext) { echo “It is possible!” }
if(($ext == 'zip') || ($ext == 'png')) { echo "It's possible." }
这绝对是可能的,但是您在那里所做的代码不正确。这是你写的:
if($ext == ('zip' || 'png')) { echo "Is it possible ?" }
这是在 php 中的翻译:
if( (if $ext evaluates to true then return true) == ( if 'zip' evaluates to true then return true || if 'png' evaluates to true then return true ) )
所以,因为 'zip' 不是 php 中定义的 'empty' 或 'false' 值之一,'png' 也不是,所以你基本上是在运行这个 if 语句:
if($ext == true)
哪个,如果它不是空的,它就是。
你想要的是 - 如前所述:
if($ext == 'zip' || $ext == 'png')
小建议:PHP 使用类似于 C 的布尔类型处理,在某种意义上,实际上任何非零值都被认为是“真”,以防驻留在 if 语句的条件部分。例如,如果您在比较构造和类型中错过了 '=' 符号,if($var = "val")
而不是if($var == "val")
您将始终在该语句中得到一个真值,因为 '=' 运算符将作为来自右侧部分“val”的设置操作值的结果返回即依次转换为“真”。所以最好将文字写在比较条件的左侧,if("val" == $var)
因为在这种情况下,如果在“==”比较中丢失一个“=”符号,则会出现错误。
所以你的 if 语句必须是这样的:
if('zip' == $ext || 'png' == $ext) { echo "Is it possible ?" }
也可能最好将 'zip' 和 'png' 文字放在名称为 FILE_TYPE_ZIP、FILE_TYPE_PNG 的常量中,或者定义一些枚举实体,例如位于源页面顶部的全局 PHP 数组,或者甚至创建一些单独的外部文件中的类 SupportedFileTypes 将强调程序支持的文件类型(在这种情况下,请查看PHP 和枚举以获取详细信息)。
在开始开发性能问题时不必打扰您,因为编写易于阅读和将来发展/优化的代码至关重要。
if (in_array($ext, array('png', 'zip'))) {
echo "Is it possible ?"
}
如果您需要多次,该数组可以存储在某个地方。
您可以简单地使用:
if($ext == 'zip' || $ext == 'png')
{
echo "It's possible";
}