Re: [PHP-DEV] Raise E_NOTICE for null castings
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
> > 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
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