AVERTISSEMENT PHP: Taille

par

0

Corriger l'avertissement PHP : sizeof() : le paramètre doit être un tableau ou un objet implémentant Countable

Corriger l'avertissement PHP : sizeof() : le paramètre doit être un tableau ou un objet implémentant Countable

0
AVERTISSEMENT PHP: Taille

O erreur PHP qui apparaît dans beaucoup WordPress Plugins qui n'ont pas été mises à jour depuis longtemps ou sont incompatibles avec les versions plus récentes de PHP. Avertissement PHP : sizeof() : le paramètre doit être un tableau ou un objet qui implémente Countable.

Dans notre scénario, l'erreur PHP s'est produite dans un module Cross Sell Product Display pour WooCommerce.

FastCGI sent in stderr: "PHP message: PHP Warning:  sizeof(): Parameter must be an array or an object that implements Countable in /web/path/public_html/wp-content/plugins/cross-sell-product-display-for-woocommerce/templates.php on line 18

De ce apare eroarea PHP Attention : sizeof() : Le paramètre doit être un tableau ou un objet qui implémente Countable ?

Le problème qui génère cette erreur PHP est la fonction sizeof() qui dans la version de PHP 7.2 ou versions ultérieures, peut générer cette erreur, si le paramètre donné n'en est pas un array ou un objet qui implémente l'interface Countable.

Par conséquent, l’erreur apparaît souvent après une mise à jour de la version PHP.

Comment résoudre les erreurs PHP générées par sizeof()?

La méthode la plus simple consiste à remplacer l'appel de fonction sizeof() avec un appel de fonction count().

Dans le cas de ceux qui utilisent d'anciennes versions du module Cross Sell Product Display, la solution est simple. Les fonctions de la gamme 18 pouces seront remplacées templates.php.

function cdxfreewoocross_get_cross_sell_products($product_id=false){
	
	if($product_id ===false ){
		
		if(!is_product()){return false;}
		
		$product_id = (int)get_the_ID();
		if($product_id=='0'){return false;}
		
	}
	
	$crosssells = get_post_meta( $product_id, '_crosssell_ids',true);
	if ( sizeof($crosssells ) == 0  || $crosssells =='') { return false; }
	
	return $crosssells;
	
}

Le code ci-dessus où se trouve sizeof() sera remplacé par :

function cdxfreewoocross_get_cross_sell_products($product_id=false){
	
	if($product_id ===false ){
		
		if(!is_product()){return false;}
		
		$product_id = (int)get_the_ID();
		if($product_id=='0'){return false;}
		
	}
	
	$crosssells = get_post_meta( $product_id, '_crosssell_ids',true);
	if ( !is_array( $crosssells ) || count( $crosssells ) == 0  || $crosssells =='') { return false; }
	
	return $crosssells;
	
}

Cette modification vérifie d'abord si $crosssells C'est un array en utilisant la fonction is_array() et, sinon, renvoie false.

Dans le cas où $crosssells C'est un array, la fonction est utilisée count() pour déterminer le nombre d'éléments dans array. Si le nombre d'éléments est nul ou $crosssells est une chaîne vide, false est renvoyé.

Laissez des commentaires s'il y a des précisions ou des ajouts à ce tutoriel.

Corriger l'avertissement PHP : sizeof() : le paramètre doit être un tableau ou un objet implémentant Countable

Vous pourriez également être intéressé par...

Laisser une réponse

Votre adresse email ne sera pas publiée. Les champs requis sont marqués *