Page 1 sur 1

Conseil Deprecated: trim(): Passing null

Posté : 04 mars 2023, 16:09
par Antoine13
Bonjour

Sur

Code : Tout sélectionner

$code=trim($code);
J’ai une erreur :

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in

J’ai 2 façons de corriger

Code : Tout sélectionner

$code=trim((string)$code); $code=trim($code ?? '');
Egalement pour

Code : Tout sélectionner

$expediteur=htmlspecialchars(expediteur);
J’ai une erreur :

Deprecated: htmlspecialchars Passing null to parameter #1 ($string) of type string is deprecated in

Et également 2 façons de corriger

Code : Tout sélectionner

$envoi=htmlspecialchars((string)$envoi); $envoi=htmlspecialchars($envoi ?? '');
Question : laquelle de ces 2 solutions ((s’il y a que ces 2) est à utiliser ? et pourquoi

Merci par avance pour vos réponses

Re: Conseil Deprecated: trim(): Passing null

Posté : 04 mars 2023, 16:45
par @rthur
Probablement, aucune des deux. :-D

Tu ne devrais pas avoir de cas où tu essaies d'appliquer trim() ou htmlspecialchars() sur une variable qui n'a pas été précédemment initialisée.

Re: Conseil Deprecated: trim(): Passing null

Posté : 04 mars 2023, 16:58
par Antoine13
Merci pour votre réponse

C'est lors du passage de PHP 8.0 à 8.1 que cette erreur est apparue.

Les variables sont déclarées en amont, dans le cas présent

Code : Tout sélectionner

$code="";

Re: Conseil Deprecated: trim(): Passing null

Posté : 04 mars 2023, 17:05
par @rthur
Si tu fais un var_dump($code) juste avant d'utiliser trim(), il te répond quoi ?

Re: Conseil Deprecated: trim(): Passing null

Posté : 04 mars 2023, 17:13
par Antoine13
Il répond: NULL

Re: Conseil Deprecated: trim(): Passing null

Posté : 04 mars 2023, 17:21
par @rthur
Du coup c'est bien que ta variable n'est pas initialisée.

Re: Conseil Deprecated: trim(): Passing null

Posté : 04 mars 2023, 17:29
par Antoine13

Code : Tout sélectionner

$code =(!empty($_POST['code']))? $_POST['code'] : Null; $code=trim($code);
Que veut tu dire par initialisée

Re: Conseil Deprecated: trim(): Passing null

Posté : 04 mars 2023, 17:50
par Antoine13
Je pense avoir corrigé
j'ai changé cela

Code : Tout sélectionner

$code =(!empty($_POST['code']))? $_POST['code'] : Null;
En cela

Code : Tout sélectionner

en $code =(!empty($_POST['code']))? $_POST['code'] : '';

Et il n'y a plus d'erreur.

Suis-je dans le vrai

Re: Conseil Deprecated: trim(): Passing null

Posté : 04 mars 2023, 20:56
par or 1
il y a vraiment un cas où le formulaire n'est pas soumis en method post et qu'il faut quand même faire le traitement ?

Re: Conseil Deprecated: trim(): Passing null

Posté : 05 mars 2023, 01:39
par two3d
PHP >= 7 :
$code = $_POST['code'] ?? '';

Re: Conseil Deprecated: trim(): Passing null

Posté : 14 mars 2023, 09:39
par Antoine13
Bonjour

Désolé pour ce retard dans la réponse.

Afin de mieux comprendre

Or1 vous dites

« il y a vraiment un cas où le formulaire n'est pas soumis en method post et qu'il faut quand même faire le traitement ? »

Cela veut dire que même si la variable n’est dans un poste je suis obligé de faire

$xxxx =(!empty($_POST['xxxx']))? $_POST['xxxx'] : ‘’;


Two 3d vous dites

PHP >= 7 :
$code = $_POST['code'] ?? '';

Vous voulez dire qu’il faut utiliser

$xxxx = $_POST['xxxx'] ?? '';

Et d’une manière générale>> ?? ‘’ lorsque cela est autorisé ?

Merci pour vos réponse

Re: Conseil Deprecated: trim(): Passing null

Posté : 14 mars 2023, 09:48
par or 1
Or1 vous dites

« il y a vraiment un cas où le formulaire n'est pas soumis en method post et qu'il faut quand même faire le traitement ? »

Cela veut dire que même si la variable n’est dans un poste je suis obligé de faire

$xxxx =(!empty($_POST['xxxx']))? $_POST['xxxx'] : ‘’;
ce qui ne répond pas à ma question un peu hors-sujet il est vrai.

Re: Conseil Deprecated: trim(): Passing null

Posté : 14 mars 2023, 10:22
par two3d

Re: [RESOLU] Conseil Deprecated: trim(): Passing null

Posté : 19 mars 2023, 22:18
par Antoine13
C'est parfait .

Merci