Error Debian 12/PHP8

Bonjour

Vu ce jour après un message d’erreur cron30:

0989|PHP Deprecated:  Implicit conversion from float -1.5 to int loses precision in /var/www/html/plugins/Metar_infos/3rdparty/Metar.php on line 1107

Le bout de code concerné.

		// Build clouds report
		if (!is_null($observed['amount'])) {
			$report = array();

			$report[] = "Il y a  " . $this->cloud_codes[$observed['amount']];

			if ($observed['height']) {
				if (!is_null($observed['type'])) {
					$report[] = $this->cloud_type_codes[$observed['type']] . ' à ' . round($observed['height'], -1.5) . ' mètres';
				} else {
					$report[] = ' à ' . round($observed['height'], -1.5) . ' mètres';
				}
			}

			$report = implode(' ', $report);
			$report = str_ireplace('des nuages cumulus', 'cumulus', $report);
			$report = str_ireplace('des nuages cumulonimbus', 'cumulonimbus', $report);
			$report = str_ireplace('  ', ' ', $report);
			$observed['report'] = ucfirst($report);

			$this->set_result_report('clouds_report', $report);
		}

		$this->set_result_group('clouds', $observed);

		return TRUE;
	}

Je suis en beta du plugin.

Antoine

Bonjour
J’ai changé le tag car la on parle du plugin plugin-metar_infos et non du plugin plugin-rosee

Je l’ai dit hier sur un autre sujet, je suis en train de corriger des warnings pour Php 8

Ce warning a été peut être corrigé dans mon alpha

Merci, j’ai bugué pour le coup.

je ne reproduis pas le problème
je peux avoir la configuration

Voilà ma config.

Antoine

Bonjour,
Le message PHP Deprecated est dû à ce code:
image
Le 2ème argument de round() doit être un entier. C’est le nombre de chiffres après la virgule si positif.
ou si négatif l’arrondi: -1 arrondi à 10, -2 arrondi à 100 …

Avec -1.5, php7 fait l’arrondi à la dizaine.

C’est 2 fois dans le fichier plugins/Metar_infos/3rdparty/Metar.php

1 « J'aime »

Avec -1.5, le but était donc d’avoir un arrondi au 50 près, ou bien?

Antoine

Il faut obligatoirement un entier.
https://www.php.net/manual/fr/function.round.php

Oui, j’ai bien compris ce point. Je cherchais juste à comprendre pourquoi le programmeur original avait entré -1.5. Je comprends qu’il voulait arrondir au 50 près.

Antoine

C’est l’altitude des nuages ?

image

Merci pour ton analyse
Je vais l’intégrer la correction ce soir dans mon alpha.
Une erreur de php 8 en moins
Il en reste encore pas mal malheureusement

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.