Categories
Code Tech Web

PHP Bug: json_encode() misleading warning on object with private properties

I have found a peculiar issue with PHP’s json_encode() function.

If you have an instance object with private properties and use json_encode() it will give you a very misleading warning.

class ExampleObject {
    private $privateProperty;
    ...
}
$obj = new ExampleObject();
json_encode($obj);

results in

Warning: json_encode() … recursion detected …

There are two workarounds in the comments for the function at php.net but this is simply a PHP bug as far as I am concerned.

Categories
Code Tech Tips Web

JavaScript Bug – Modulo of small numbers

It seems that there is a problem with the modulo function, ‘%’, in JavaScript.

For example: 10 % 0.1 should equate to zero but comes out as 0.09999999999999945 probably due to some internal floating-point rounding errors.

Easy solution (a hack really): Multiply both numbers by 1000 before using the modulo function.