鉴于以下代码:

if (is_valid($string) && up_to_length($string) && file_exists($file)) 
{
    ......
}

如果is_valid($string)返回false,php解释器是否仍会判断后面的条件,如up_to_length($string)
如果是这样,那么为什么它在不需要的情况下还要做额外的工作呢?

推荐答案

是的,PHP解释器是"懒惰的",这意味着它将尽可能少地进行比较以判断条件.

如果要验证这一点,请try 以下方法:

function saySomething()
{
    echo 'hi!';
    return true;
}

if (false && saySomething())
{
    echo 'statement evaluated to true';
}

Php相关问答推荐

使用PHP 7.4在ZipArchive中设置目录mtime

在PHP中结合每周日程安排和特殊日子查找下一个可用日期

为什么这个方法调用用引号和花括号包裹?

在WooCommerce中处理客户总支出中的退款

累加平面数组中数字子集的所有组合,以生成组合及其乘积的二维数组

如果WooCommerce中存在特定的运输方式,则隐藏其他运输方式

RediSearch PHP希望我在每次使用时定义所有字段

WooCommerce HPOS管理订单列表中带有订单元数据的定制列

模仿GUZLE中的curl 工作脚本(分块数据和二进制上传一起)

如何使用barryvdh/laravel-Snappy在两个打印页面上将表格分成两部分?

未定义的类型';PDF';在Laravel 8

更改特定产品标签的 Woocommerce 产品名称

htaccess 配置提供静态文件和动态文件

有没有办法像引用枚举一样引用注册表中的对象?

API 平台 - UI 服务器端点定义

我需要一个正则表达式模式来获取在不包含特定字符串后面的模式中的文本

自定义主键值未正确显示

同一页面上多个组件的 Livewire 分页问题

在 PHP 中验证签名

带有 nginx 的 Symfony 不提供 .js 和 .css 文件