PHP业务逻辑一个关于操作符优先级的BUG

in 前端 with 0 comment
  $orders = $this->waitOrders()->filter(function (Order $order) {
            return $order->shop_id = 434 && (strtotime($order->expire_time) - $this->now > 5 * 60);
        });

线上有段业务逻辑有问题,查到了这个地方判断的bug,但是第一反应是把订单的shop_id 改成了434,而线上的实际表现是被改成了1;才发现这个地方先进行434 与后面 && 的操作,=赋值的优先级较低。所以实际表现改成1才是正确的反应。
也是蛋疼。

Comments are closed.