Object of class %s could not be converted to float¶
Description¶
PHP reports that the object cannot be used as an float. Converting an object into a float is only possible when the underlying class has provided the code for it. There is no userland code to do that, such as a magic code: it is only possible via a call to a method that returns a float.
Among the PHP classes, gmp
and bcmath
(in PHP 8.4) extensions provide classes which also works with math operations. Most of the other classes do not convert easily to numbers, as it makes little sense to convert a database connexion (for example) into a number.
Example¶
<?php
class Y { }
// Error!
echo new Y + 1;
$multiplication = gmp_mul('12', 3);
print $multiplication * 4; // 144
$number = new BcMath\Number('1.234');
$addition = $number->add(new BcMath\Number('2.34567'));
print $addition + 1; // 4.57967
?>
Literal Examples¶
Object of class Y could not be converted to float
Object of class Mysqli could not be converted to float
Solutions¶
Implement tod that returns an integer, on that object.
Upgrade to PHP 8.4, to use automatic conversion with
bcmath
.