gpt4 book ai didi

条件语句中的 PHP "or"运算符 - 新问题!

转载 作者:可可西里 更新时间:2023-10-31 23:52:33 26 4
gpt4 key购买 nike

请原谅我,如果之前已经介绍过,我搜索无济于事。

我有一个脚本可以查看目录以找到其中的文件。有一个条件行只查找具有特定扩展名的文件:

if(strtolower(substr($file, -3)) == "mp4"){...

这样只会查找扩展名为“mp4”的文件。

我需要添加一些“或”运算符来添加另外两种扩展类型。我尝试了以下但没有用:

if(strtolower(substr($file, -3)) == "mp4" || == "mov" || == "flv"){...

现在该行似乎被忽略了,它获取了目录中的每个文件。如果有人能帮助我,我将不胜感激!我知道这可能是最基本的,但我对 PHP 的掌握极其有限(尽管我确实看到了它的美!!!)

提前致谢。

最佳答案

您尝试的方法不起作用,因为比较运算符 ==binary operator并需要两个操作数,即 operand1 == operand2。这同样适用于也是二元运算符的逻辑 OR 运算符,即 operand1 ||操作数 2.

这意味着你需要这样写:

$ext = strtolower(substr($file, -3));
if ($ext == "mp4" || $ext == "mov" || $ext == "flv")

这里的$ext只是用来避免strtolower(substr($file, -3))的重复调用。在这种情况下,每个二元运算符都有两个操作数:

((($ext == "mp4") || ($ext == "mov")) || ($ext == "flv"))
\__/ \___/
\__==___/ \__/ \___/
\ \__==___/
\_______||_______/
\ \__/ \___/
\ \__==___/
\________________||_______/

(我添加了括号以突出显示表达式的计算顺序。)

所以你必须这样写。

但您也可以使用数组和 in_array :

in_array(strtolower(substr($file, -3)), array("mp4","mov","flv"))

pathinfo获取文件扩展名可能更好,所以:

in_array(pathinfo($file, PATHINFO_EXTENSION), array("mp4","mov","flv"))

关于条件语句中的 PHP "or"运算符 - 新问题!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3634022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com