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