Categories
PHP

PHP Fail

Aparentemente un "string" no es un "string" en PHP.

php:

<?php
interface IPhpSucks {
        function foo(string $bar);
}
class PhpSucks implements IPhpSucks {
    function foo(string $bar) {}
}
$f = new PhpSucks();
$f->foo('demo');

Al ejecutar ese script, se obtiene un lindo error.

Catchable fatal error: Argument 1 passed to PhpSucks::foo() must be an instance of string, string given, called in demo.php on line 10 and defined in demo.php on line 6

Actualización: Averiguando un poco más, al parecer esta característica (Type Hinting) funciona sólo para nombres de clases o el tipo array (s/PhpSucks/ISuckInPhp/).