Effacer message warning.

Résolu/Fermé
Max747 Messages postés 245 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 23 novembre 2022 - 6 juil. 2021 à 16:23
 Max747 - 10 juil. 2021 à 09:55
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

jordane45 Messages postés 36598 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2022 4 420
6 juil. 2021 à 16:55
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++)
	{

1
Vivi91100 Messages postés 1 Date d'inscription lundi 5 juillet 2021 Statut Membre Dernière intervention 6 juillet 2021
Modifié le 6 juil. 2021 à 16:52
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 !!!
0
Merci Jordane45.
0