Files
pest/src/Concerns/Retrievable.php
2021-12-05 14:03:09 +00:00

34 lines
718 B
PHP

<?php
declare(strict_types=1);
namespace Pest\Concerns;
/**
* @internal
*/
trait Retrievable
{
/**
* @template TRetrievableValue
*
* Safely retrieve the value at the given key from an object or array.
*
* @template TRetrievableValue
*
* @param array<string, TRetrievableValue>|object $value
* @param TRetrievableValue|null $default
*
* @return TRetrievableValue|null
*/
private function retrieve(string $key, mixed $value, mixed $default = null): mixed
{
if (is_array($value)) {
return $value[$key] ?? $default;
}
// @phpstan-ignore-next-line
return $value->$key ?? $default;
}
}