[résolu] Typage fort et valeur null dans paramétre d'une méthode

Typage fort et valeur null dans paramétre d'une méthode [résolu] - PHP - Programmation

Marsh Posté le 18-02-2022 à 09:55:45    

Bonjour,
 
Je reprend le PHP après des années d'arrêt et du coup sur l'une des nouveautés est le typage fort que j'utilise avec joie. Néanmoins, j'ai un problème avec les typages et la valeur null.
Exemple

Code :
  1. $Fromage = new MaClassePeutImporte ();
  2. $Fromage = null;
  3. class MaClasse{
  4.     public function Tartiflette(MaClassePeutImporte $parametre):void{
  5.     }
  6. }
  7. $obj = new MaClasse();
  8. $obj->Tartiflette($Fromage);


 
Cette exemple va générer une erreur car ma variable Fromage est null. Dans mon cas le null provient de la base de données (MariaDb).
 
Comment je peux gérer ce cas de manière propre ?
 
Merci


Message édité par Berceker United le 18-02-2022 à 12:23:55
Reply

Marsh Posté le 18-02-2022 à 09:55:45   

Reply

Marsh Posté le 18-02-2022 à 12:23:31    

J'ai trouvé la solution via un autre forum,
Je pose la solution ici.
 
Utilisation du point d'interrogation.
https://www.php.net/manual/fr/langu [...] ations.php


Message édité par Berceker United le 25-02-2022 à 15:58:16
Reply

Marsh Posté le 19-02-2022 à 09:34:34    

if (!is_null($Fromage)) $obj->Tartiflette($Fromage);


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-02-2022 à 13:02:21    

Bonjour,
 
Je sais que c'est possible de le faire ainsi mais c'est ce genre de chose que je voulais éviter.

Reply

Marsh Posté le 24-02-2022 à 13:52:05    

https://www.php.net/manual/fr/migra [...] atures.php
public function Tartiflette(?MaClassePeutImporte $parametre):void{
 
}
 
En fait, en-dehors de ma solution, ce qui est recommandé c'est de mettre le ? devant le type du paramètre dans la déclaration de la fonction.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 25-02-2022 à 15:58:44    

Justement, c'est ce que j'indique dans mon deuxième poste. :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed