Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Conditionable/Traits/Conditionable.php
Строк: 93
<?php

namespace IlluminateSupportTraits;

use 
Closure;
use 
IlluminateSupportHigherOrderWhenProxy;

trait 
Conditionable
{
    
/**
     * Apply the callback if the given "value" is (or resolves to) truthy.
     *
     * @template TWhenParameter
     * @template TWhenReturnType
     *
     * @param  (Closure($this): TWhenParameter)|TWhenParameter|null $value
     * @param  (callable($this, TWhenParameter): TWhenReturnType)|null  $callback
     * @param  (callable($this, TWhenParameter): TWhenReturnType)|null  $default
     * @return $this|TWhenReturnType
     */
    
public function when($value null, callable $callback null, callable $default null)
    {
        
$value $value instanceof Closure $value($this) : $value;

        if (
func_num_args() === 0) {
            return new 
HigherOrderWhenProxy($this);
        }

        if (
func_num_args() === 1) {
            return (new 
HigherOrderWhenProxy($this))->condition($value);
        }

        if (
$value) {
            return 
$callback($this$value) ?? $this;
        } elseif (
$default) {
            return 
$default($this$value) ?? $this;
        }

        return 
$this;
    }

    
/**
     * Apply the callback if the given "value" is (or resolves to) falsy.
     *
     * @template TUnlessParameter
     * @template TUnlessReturnType
     *
     * @param  (Closure($this): TUnlessParameter)|TUnlessParameter|null  $value
     * @param  (callable($this, TUnlessParameter): TUnlessReturnType)|null  $callback
     * @param  (callable($this, TUnlessParameter): TUnlessReturnType)|null  $default
     * @return $this|TUnlessReturnType
     */
    
public function unless($value null, callable $callback null, callable $default null)
    {
        
$value $value instanceof Closure $value($this) : $value;

        if (
func_num_args() === 0) {
            return (new 
HigherOrderWhenProxy($this))->negateConditionOnCapture();
        }

        if (
func_num_args() === 1) {
            return (new 
HigherOrderWhenProxy($this))->condition(! $value);
        }

        if (! 
$value) {
            return 
$callback($this$value) ?? $this;
        } elseif (
$default) {
            return 
$default($this$value) ?? $this;
        }

        return 
$this;
    }
}
Онлайн: 1
Реклама