RFC for function type
Čo hovoríš na takýto jazykový konštrukt?
<?php
functiontype PlusFunctionType(int, int): int;
$plus = function implements PlusFunctionType(int $first, int $second): int {
return $first + $second;
};
V haskelli sa to volá type signature.
Pre kompletnosť uvádzam ako je tento problém možné reišiť v súčastnosti:
<?php declare(strict_types=1);
interface PlusFunction
{
public function __invoke(int $first, int $second): int;
}
$plus = function (int $first, int $second): int {
return $first + $second;
};
$plusImpl = new class implements PlusFunction {
public function __invoke(int $first, int $second): int {
return $first + $second;
}
};
var_dump($plus(3,4));
$plusObj = (object)$plus;
var_dump($plusObj);
var_dump($plusObj instanceof PlusFunction);
var_dump($plusObj(3,4));
var_dump($plusImpl instanceof PlusFunction);
var_dump($plusImpl(3,4));