Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** This file is part of the ramsey/collection library** For the full copyright and license information, please view the LICENSE* file that was distributed with this source code.** @copyright Copyright (c) Ben Ramsey <ben@benramsey.com>* @license http://opensource.org/licenses/MIT MIT*/declare(strict_types=1);namespace Ramsey\Collection\Tool;use DateTimeInterface;use function assert;use function get_resource_type;use function is_array;use function is_bool;use function is_callable;use function is_object;use function is_resource;use function is_scalar;/*** Provides functionality to express a value as string*/trait ValueToStringTrait{/*** Returns a string representation of the value.** - null value: `'NULL'`* - boolean: `'TRUE'`, `'FALSE'`* - array: `'Array'`* - scalar: converted-value* - resource: `'(type resource #number)'`* - object with `__toString()`: result of `__toString()`* - object DateTime: ISO 8601 date* - object: `'(className Object)'`* - anonymous function: same as object** @param mixed $value the value to return as a string.*/protected function toolValueToString(mixed $value): string{// nullif ($value === null) {return 'NULL';}// boolean constantsif (is_bool($value)) {return $value ? 'TRUE' : 'FALSE';}// arrayif (is_array($value)) {return 'Array';}// scalar types (integer, float, string)if (is_scalar($value)) {return (string) $value;}// resourceif (is_resource($value)) {return '(' . get_resource_type($value) . ' resource #' . (int) $value . ')';}// From here, $value should be an object.assert(is_object($value));// __toString() is implementedif (is_callable([$value, '__toString'])) {return (string) $value->__toString();}// object of type \DateTimeif ($value instanceof DateTimeInterface) {return $value->format('c');}// unknown typereturn '(' . $value::class . ' Object)';}}