Files
park/vendor/overtrue/wechat/src/Kernel/Clauses/Clause.php
MeSHard b22d09bd39 init
2025-12-01 11:19:23 +08:00

74 lines
1.4 KiB
PHP

<?php
/*
* This file is part of the overtrue/wechat.
*
* (c) overtrue <i@overtrue.me>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace EasyWeChat\Kernel\Clauses;
/**
* Class Clause.
*
* @author mingyoung <mingyoungcheung@gmail.com>
*/
class Clause
{
/**
* @var array
*/
protected $clauses = [
'where' => [],
];
/**
* @param mixed ...$args
*
* @return $this
*/
public function where(...$args)
{
array_push($this->clauses['where'], $args);
return $this;
}
/**
* @param mixed $payload
*
* @return bool
*/
public function intercepted($payload)
{
return (bool) $this->interceptWhereClause($payload);
}
/**
* @param mixed $payload
*
* @return bool
*/
protected function interceptWhereClause($payload)
{
foreach ($this->clauses['where'] as $item) {
list($key, $value) = $item;
if (!isset($payload[$key])) {
continue;
}
if (is_array($value) && !in_array($payload[$key], $value)) {
return true;
}
if (!is_array($value) && $payload[$key] !== $value) {
return true;
}
}
return false;
}
}