# give/4.18.0/vendor/vendor-prefixed/stellarwp/field-conditions/src/ComplexConditionSet.php

GiveWP – Donation Plugin and Fundraising Platform, version 4.18.0. 56 lines.

- Page: https://pluginprobe.com/plugins/give/4.18.0/code/vendor/vendor-prefixed/stellarwp/field-conditions/src/ComplexConditionSet.php
- Raw: https://pluginprobe.com/plugins/give/4.18.0/raw/vendor/vendor-prefixed/stellarwp/field-conditions/src/ComplexConditionSet.php
- Modified: 2025-02-03T15:13:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.18.0/code/vendor/vendor-prefixed/stellarwp/field-conditions/src/ComplexConditionSet.php#L10-L20`.

```php
<?php

declare(strict_types=1);

namespace Give\Vendors\StellarWP\FieldConditions;

use ArrayIterator;
use Give\Vendors\StellarWP\FieldConditions\Concerns\HasConditions;
use Give\Vendors\StellarWP\FieldConditions\Contracts\Condition;
use Give\Vendors\StellarWP\FieldConditions\Contracts\ConditionSet;

/**
 * @implements ConditionSet<Condition>
 * @uses HasConditions<Condition>
 */
class ComplexConditionSet implements ConditionSet
{
    use HasConditions;

    /**
     * @since 1.0.0
     *
     * @param Condition ...$conditions
     */
    public function __construct(...$conditions)
    {
        $this->validateConditions($conditions);
        $this->conditions = $conditions;
    }

    /**
     * @inheritDoc
     *
     * @since 1.0.0
     */
    public function getIterator(): ArrayIterator
    {
        return new ArrayIterator($this->conditions);
    }

    /**
     * @inheritDoc
     *
     * @since 1.0.0
     */
    public function jsonSerialize(): array
    {
        return array_map(
            static function (Condition $condition) {
                return $condition->jsonSerialize();
            },
            $this->conditions
        );
    }
}

```
