@ 2021-07-17T16:57:40Z <?php
function getGreeting(MapInterface $user): string
{
$fullName = [];
$fullNameSegments = ['first_name', 'last_name'];
foreach ($fullNameSegments as $segment) {
if ($user->has($segment)) {
$fullName[] = $user->get($segment);
}
}
return implode(' ', $fullName);
}
interface MapInterface
{
public function get(string $key);
public function has(string $key): bool;
}
class Map implements MapInterface
{
protected $data;
public function __construct(array $data)
{
$this->data = $data;
}
public function get(string $key)
{
if (!array_key_exists($key, $this->data)) {
throw new RangeException(sprintf('Key %1$s not found', $key));
}
return $this->data[$key];
}
public function has(string $key): bool
{
return array_key_exists($key, $this->data);
}
}
$user = new Map([
'first_name' => 'Xedin',
'last_name' => 'Unknown',
'id' => '12345',
]);
assert($user instanceof MapInterface);
echo getGreeting($user);
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.30 , 8.2.0 - 8.2.25 , 8.3.0 - 8.3.4 , 8.3.6 - 8.3.14 , 8.4.1 Xedin Unknown Output for 8.3.5 Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
Xedin Unknown preferences:dark mode live preview
72.8 ms | 407 KiB | 5 Q