Edit report at https://bugs.php.net/bug.php?id=80624&edit=1
ID: 80624
Updated by: cmb@php.net
Reported by: ilyes dot ahidar at gmail dot com
Summary: Undocumented change php 8 vs php 7 abs function
-Status: Open
+Status: Verified
Type: Documentation Problem
Package: *Math Functions
Operating System: Linux Fedora 33
PHP Version: 8.0.1
Block user comment: N
Private report: N
Previous Comments:
------------------------------------------------------------------------
[2021-01-14 16:21:37] ilyes dot ahidar at gmail dot com
Description:
------------
---
From manual page: https://php.net/function.abs
---
The manual says that the abs() function accepts 1 argument of the type "mixed", but
enabling strict_types and passing a string to the abs function outputs an type error.
Test script:
---------------
<?php
declare(strict_types=1);
$a = "0.00";
var_dump(abs($a));
Expected result:
----------------
In php 7 it would output:
float(0)
Actual result:
--------------
Fatal error: Uncaught TypeError: abs(): Argument #1 ($num) must be of type int|float, string given
in /in/ZD7Kd:7
Stack trace:
#0 /in/ZD7Kd(7): abs('0.00')
#1 {main}
thrown in /in/ZD7Kd on line 7
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80624&edit=1