Re: [PHP-DEV] Raise E_NOTICE for null castings

2017-10-27 Thread li...@rhsoft.net


Am 27.10.2017 um 12:54 schrieb Niklas Keller:

pleae don't break code like this which is a useful case for access
directly a array field returned from a function and so makes this to
a one-liner without check the result

public function GetMaxSort(): int
{
  return (int)mysqli_fetch_row($this->cl_api->db->query("select
SQL_NO_CACHE max(hsort) from {$this->cl_api->sql_prefix}main", 1))[0];

}


Just use return (int) mysqli_fetch_row($this->cl_api->db->query("select 
SQL_NO_CACHE max(hsort) from {$this->cl_api->sql_prefix}main", 1))[0] ?? 0;


thanks - that's indeed the better solution and since i use 
MYSQLI_OPT_INT_AND_FLOAT_NATIVE in the database layer the complete 
type-casting can be removed too!


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DEV] Raise E_NOTICE for null castings

2017-10-27 Thread Niklas Keller
>
> Hi, I would like to propose an RFC to raise an E_NOTICE when a variable
>> "initialized" to null is casted to other types:
>>
>> $foo = null;
>> var_dump($foo['bar']);
>> var_dump($foo . 'bar');
>> var_dump($foo + 2);
>> var_dump($foo & 2);
>> // At the time being, this code produces no errors
>>
>> The eventual vote may be split one for each case.
>>
>> What do you think?
>>
>
> pleae don't break code like this which is a useful case for access
> directly a array field returned from a function and so makes this to a
> one-liner without check the result
>
> public function GetMaxSort(): int
> {
>  return (int)mysqli_fetch_row($this->cl_api->db->query("select
> SQL_NO_CACHE max(hsort) from {$this->cl_api->sql_prefix}main", 1))[0];
>
> }
>

Just use return (int) mysqli_fetch_row($this->cl_api->db->query("select
SQL_NO_CACHE max(hsort) from {$this->cl_api->sql_prefix}main", 1))[0] ?? 0;

Regards, Niklas


Re: [PHP-DEV] Raise E_NOTICE for null castings

2017-10-27 Thread li...@rhsoft.net



Am 27.10.2017 um 11:49 schrieb Filippo Tessarotto:
Hi, I would like to propose an RFC to raise an E_NOTICE when a variable 
"initialized" to null is casted to other types:


$foo = null;
var_dump($foo['bar']);
var_dump($foo . 'bar');
var_dump($foo + 2);
var_dump($foo & 2);
// At the time being, this code produces no errors

The eventual vote may be split one for each case.

What do you think?


pleae don't break code like this which is a useful case for access 
directly a array field returned from a function and so makes this to a 
one-liner without check the result


public function GetMaxSort(): int
{
 return (int)mysqli_fetch_row($this->cl_api->db->query("select 
SQL_NO_CACHE max(hsort) from {$this->cl_api->sql_prefix}main", 1))[0];

}

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php