Hi all, PHP 7 has strict_types mode for function parameters/return values and these are binded to certain type strictly. https://wiki.php.net/rfc/scalar_type_hints_v5
Why not make strict_types mode more strict? The idea is as follows: <?php declare(strict_types=1); function foo(int &$i) { $i = "string"; // Raise error $i = function_returns_string(); // Raise error $i = 1234.5678; // Raise error $i = function_returns_float(); // Raise error $n = 123; // do something $n = array(); // Raise error } ?> Assigning different type to already initialized variable is a bug most likely. There may be cases that variable should have several types, e.g. return INT for success and FALSE for failure, but programmers can use different variable or return value directly or make BOOL/NULL exception. This is useful with reference especially. For example, <?php declare(strict_types=1); function foo(int &$i) { $i = 'string'; } $i = 0; foo($i); var_dump($i); ?> outputs string(6) "string" Just an idea. Any comments? -- Yasuo Ohgaki yohg...@ohgaki.net -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php