- assert: documentation ( source)
- is_callable: documentation ( source)
<?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);