- Output for 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.31, 8.2.0 - 8.2.27, 8.3.0 - 8.3.15, 8.4.1 - 8.4.2
<?php
declare(strict_types=1);
class CanBeStrung
{
public function __toString(): string
{
return 'I\'m highly strung';
}
}
function isItStringy($possibleStringType): bool
{
if (is_string($possibleStringType)) {
return true;
}
if(is_callable([$possibleStringType, '__toString'])) {
return true;
}
return false;
}
assert(isItStringy('a string') === true);
assert(isItStringy(new CanBeStrung()) === true);
assert(isItStringy(42) === false);
assert(isItStringy(new stdClass()) === false);