From 05dabe9718c5d40b8657d8edec9c5e7938842a52 Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Thu, 28 Jul 2022 15:32:52 +0200 Subject: [PATCH] inline calls in TrinaryLogic to reduce method call overhead --- src/TrinaryLogic.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/TrinaryLogic.php b/src/TrinaryLogic.php index 8776d14519..68fbfb7f27 100644 --- a/src/TrinaryLogic.php +++ b/src/TrinaryLogic.php @@ -28,22 +28,23 @@ private function __construct(private int $value) public static function createYes(): self { - return self::create(self::YES); + return self::$registry[self::YES] ??= new self(self::YES); } public static function createNo(): self { - return self::create(self::NO); + return self::$registry[self::NO] ??= new self(self::NO); } public static function createMaybe(): self { - return self::create(self::MAYBE); + return self::$registry[self::MAYBE] ??= new self(self::MAYBE); } public static function createFromBoolean(bool $value): self { - return self::create($value ? self::YES : self::NO); + $yesNo = $value ? self::YES : self::NO; + return self::$registry[$yesNo] ??= new self($yesNo); } private static function create(int $value): self