Effacer message warning. [Résolu]

Signaler
Messages postés
139
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
6 juillet 2021
-
 Max747 -
Bonjour,

Sur mon site de jeu d'échecs j'ai ce message warning qui survient lorsque la partie débute et qu'aucun mouvement de pièces n'est pas encore effectué:

Warning: count(): Parameter must be an array or an object that implements Countable in /customers/6/0/9/jeuxechecs.fr/httpd.www/echecs/includes/gui.inc.php on line 431

Cette ligne 431 correspond à celle ci dessous:

for ($i = 0; $i < (count($movesArray) - 1); $i++)


Faisant partie de la fonction ci dessous:

function getMovesCoordinate( )
{
	global $movesArray;

	$moves = array( );

	for ($i = 0; $i < (count($movesArray) - 1); $i++)
	{
		$move = $movesArray[$i + 1];

		// clear out all of the vars
		$piece = $sqFrom = $sqTo = $mid = $pro = $chk = '';

		colrow2til($move['fromCol'],$move['fromRow'],$sqFrom);
		colrow2til($move['toCol'],$move['toRow'],$sqTo);
		$mid = isset($move['captSq']) ? 'x' : '-';
		$pro = isset($move['promo']) ? '=' . strtolower($move['promo']) : '';

		if ( isset($move['check']) )
		{
			if ('check' == $move['check'])
				$chk = '+';
			elseif ('mate' == $move['check'])
				$chk = '#';
		}

		// if it's a castle move
		if (isset($move['extra']) && 'ep' != $move['extra'])
			$moves[floor($i / 2)][$i % 2] = $move['extra'] . $chk; // just display the castle notation
		elseif (isset($move['extra']) && 'ep' == $move['extra']) // it's an en passant move
			$moves[floor($i / 2)][$i % 2] = $sqFrom . $mid . $sqTo . 'ep' . $chk; // display it
		else // it's a normal move
			$moves[floor($i / 2)][$i % 2] = $sqFrom . $mid . $sqTo . $pro . $chk; // display it
	}

	return $moves;
}


Que puis je ajouter ou modifier pour faire en sorte que ce message warning n'apparaisse plus?

Merci.





Configuration: Windows / Opera 36.0.2130.80

3 réponses

Messages postés
33137
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 juillet 2021
3 639
Bonjour,
Depuis les nouvelles versions de PHP, la fonction "count" retourne un warning si la variable n'est pas un objet ou un array

A la limite, tu peux faire :
function getMovesCoordinate( )
{
	global $movesArray;
    $nbMove = !empty($movesArray)  && is_array($movesArray) ? count($movesArray) : 1;
	$moves = array( );

	for ($i = 0; $i < ($nbMove - 1); $i++)
	{

Messages postés
1
Date d'inscription
lundi 5 juillet 2021
Statut
Membre
Dernière intervention
6 juillet 2021

Bonsoir Max , tu veux une reponse a ta preoccupation rejoins moi sur
[ SUPPRIME PAR LA MODERATION !!! ]

Edit modération : NON ! Les échanges se font exclusivement sur le forum !!!
Merci Jordane45.