php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #80101 Cast to an integer should emit warning if outside the range
Submitted: 2020-09-14 11:30 UTC Modified: 2021-11-05 18:56 UTC
From: michael dot vorisek at email dot cz Assigned:
Status: Open Package: *General Issues
PHP Version: 7.4.10 OS: any
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: michael dot vorisek at email dot cz
New email:
PHP Version: OS:

 

 [2020-09-14 11:30 UTC] michael dot vorisek at email dot cz
Description:
------------
if float or string is casted to an integer type and it evaluates to a number outside the max. range, at least warning should be emitted

Test script:
---------------
var_dump((int) (PHP_INT_MAX + 1));    // int(-9223372036854775808)
var_dump((int) (PHP_INT_MAX + 10));   // int(-9223372036854775808)
var_dump((int) (PHP_INT_MAX + 2000)); // int(-9223372036854773760)
var_dump((int) INF);                  // int(0)

https://3v4l.org/fgeYU

Expected result:
----------------
all 4 cases must emit at least a warning, similar to 1/0 division


Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2021-11-05 18:56 UTC] cmb@php.net
I'd rather have bigints (<https://wiki.php.net/rfc/bigint>).
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Dec 26 20:01:29 2024 UTC