wawos 发表于 2024-12-24 11:04:16

有懂php代码的吗

为啥php系统函数一个参数如果想判断多个常量, 可以加一个竖线 "|" 一次性写在一个参数里

比如判断ip是 ipv4 且 不是内网ip:
[*]filter_var($IP, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)
[*] && filter_var($IP, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE)复制代码

上面2句可以加一个竖线 "|" 直接写成一句, 不会有任何BUG:
[*]filter_var($IP, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)复制代码

wawos 发表于 2024-12-24 11:07:15

本帖最后由 wawos 于 2024-12-24 11:08 编辑

但是自己测试, 自己定义一个函数 和 2个常量

用这种加 "|" 同时传2个常量进去, 判断根本不行, 只能2句代码分别写单独判断才可以

有那种加 "|" 同时传2个常量进去, 写法解释的官方教程吗

Kvm 发表于 2024-12-24 11:09:05

&是 and
|是 or

小瑞 发表于 2024-12-24 11:43:00

看不懂 有请下一位男嘉宾登场

wawos 发表于 2024-12-24 11:09:28

本帖最后由 wawos 于 2024-12-24 11:14 编辑

Kvm 发表于 2024-12-24 11:09

&是 and
|是 or

别胡说好吗, 两个&&和||才是and和or, 单个一个&和|是 完全 完全不同的

竖线运算优先级, 它是要先运算了, 才会把这个结果数字(1个数) 传给函数啊,

函数怎么知道之前写的两个常量数是啥呢

a5582323 发表于 2024-12-24 11:12:03


a5582323 发表于 2024-12-24 11:15

google:位运算符
竖线运算付, 它是要先运算了, 才会把这个结果数字(1个数) 传给函数啊,

函数怎么知道之前写的两个常量数是啥呢

wawos 发表于 2024-12-24 11:09:00

上面瞎扯呢这里的|是位运算。。
php || 才是 or   && 是 and
https://cdn.jsdelivr.net/gh/master-of-forums/master-of-forums/public/images/patch.gif

入学申请 发表于 2024-12-24 11:15:16

这个是对的,可以这样写

ymh1147 发表于 2024-12-24 11:15:48

问得很好,下次别问了。找gpt
页: [1]
查看完整版本: 有懂php代码的吗