From eef5df583ef8ee35f1ba4ae619a2415050af713c Mon Sep 17 00:00:00 2001 From: Laurent Destailleur <eldy@destailleur.fr> Date: Tue, 20 Jun 2017 00:50:30 +0200 Subject: [PATCH] Fix php 7.2 --- htdocs/core/lib/json.lib.php | 7 +++++-- test/phpunit/JsonLibTest.php | 8 +++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/htdocs/core/lib/json.lib.php b/htdocs/core/lib/json.lib.php index 6b868663aa7..7388ba47806 100644 --- a/htdocs/core/lib/json.lib.php +++ b/htdocs/core/lib/json.lib.php @@ -49,12 +49,15 @@ function dol_json_encode($elements) { dol_syslog('dol_json_encode() is deprecated. Please update your code to use native json_encode().', LOG_WARNING); - $num=count($elements); + $num=0; if (is_object($elements)) // Count number of properties for an object { - $num=0; foreach($elements as $key => $value) $num++; } + else + { + $num=count($elements); + } //var_dump($num); // determine type diff --git a/test/phpunit/JsonLibTest.php b/test/phpunit/JsonLibTest.php index 66999e31c65..a06db14565c 100644 --- a/test/phpunit/JsonLibTest.php +++ b/test/phpunit/JsonLibTest.php @@ -134,7 +134,7 @@ class JsonLibTest extends PHPUnit_Framework_TestCase // Do a test with an array starting with 0 $arraytotest=array(0=>array('key'=>1,'value'=>'PRODREF','label'=>'Product ref with é and special chars \\ \' "')); $arrayencodedexpected='[{"key":1,"value":"PRODREF","label":"Product ref with \u00e9 and special chars \\\\ \' \""}]'; - + $encoded=json_encode($arraytotest); $this->assertEquals($arrayencodedexpected,$encoded); $decoded=json_decode($encoded,true); @@ -148,7 +148,7 @@ class JsonLibTest extends PHPUnit_Framework_TestCase // Same test but array start with 2 instead of 0 $arraytotest=array(2=>array('key'=>1,'value'=>'PRODREF','label'=>'Product ref with é and special chars \\ \' "')); $arrayencodedexpected='{"2":{"key":1,"value":"PRODREF","label":"Product ref with \u00e9 and special chars \\\\ \' \""}}'; - + $encoded=json_encode($arraytotest); $this->assertEquals($arrayencodedexpected,$encoded); $decoded=json_decode($encoded,true); @@ -158,7 +158,7 @@ class JsonLibTest extends PHPUnit_Framework_TestCase $this->assertEquals($arrayencodedexpected,$encoded); $decoded=dol_json_decode($encoded,true); $this->assertEquals($arraytotest,$decoded,'test for dol_json_xxx'); - + // Test with object $now=gmmktime(12,0,0,1,1,1970); $objecttotest=new stdClass(); @@ -167,7 +167,5 @@ class JsonLibTest extends PHPUnit_Framework_TestCase $objecttotest->property3=$now; $encoded=dol_json_encode($objecttotest); $this->assertEquals('{"property1":"abc","property2":1234,"property3":43200}',$encoded); - } - } -- GitLab