Page 1 sur 1

Ecriture php avec des points d'interrogation

Posté : 25 févr. 2021, 18:53
par ADC
Bonjour,
On m'as fournis un code PHP officiel et fonctionnel (API monetico Banque CIC ) cependant lorsque je le met sur mon serveur mutualisé OVH PHP 7 il me ressort une erreur de syntaxe.

public function getCivility(): ?string
{
return $this->civility;
}

/**
* @param string|null $civility
*/
public function setCivility(?string $civility): void
{
$this->civility = $civility;
}

Le ? permet de faire des tests , Ok mais la je ne comprends pas...
Comment convertir ce genre d’écriture pour que ce soit accepté par PHP?
Merci pour l'entraide.

PS j'ai cherché partout sur le net, rien trouvé!

Re: Ecriture php avec des points d'interrogation

Posté : 26 févr. 2021, 17:02
par ADC
En cherchant, j'ai simplifié le code en :
public function getCivility()
{
if( gettype($value) =="string"){ return $this->civility;}else{ return false; }
}

/**
* @param string|null $civility
*/
public function setCivility($civility)
{
if( gettype($value) =="string"){ $this->civility = $civility;}else{ return false; }
}

des suggestions?

Re: [RESOLU] Ecriture php avec des points d'interrogation

Posté : 26 févr. 2021, 17:35
par ADC
J'aurai pu aussi utiliser is_string($value) au lieu de gettype($value) =="string"

Re: [RESOLU] Ecriture php avec des points d'interrogation

Posté : 26 févr. 2021, 18:28
par Saian
Salut, il s'agit en fait du type nullable. ?string veut dire que la valeur peut être soit null soit de type string, tout autre type provoquant une erreur.