Re: About declare(strict_types = 1)
| From: | Dennis Birkholz | Date: | Mon, 16 Mar 2015 05:49:59 +0000 |
| Subject: | Re: About declare(strict_types = 1) | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-84984@lists.php.net to get a copy of this message | ||
Hello Xinchen,
Am 16.03.2015 um 06:28 schrieb Xinchen Hui:
> lib.php
> <?php
> declare(strict_types = 1);
> function add(int $a, int $b) {
> }
>
> <?php
> add($_GET['a'], $_GET['b']);
>
> that means, I need to add a lots of (int) while I try to call a
> function in a library which is not written by myself.
that is not right and has been discussed a thousand times over.
The declare changes the rules only for function calls in the file it is
declared in.
so:
lib.php:
<?php
declare(strict_types = 1);
function foo(int $a) {
// no function call here
}
?>
The declare here does just nothing.
<?php
require "lib.php";
foo("123"); // will work
?>
<?php
declare(strict_types = 1);
require "lib.php";
foo("123"); // will give an error
?>
Very easy, explained a thousand times over. Bringing up the same false
arguments up again and again does really not help the discussion.
Greets
Dennis