[RESOLU] Objet avec un tiret dans son nom, comment ne pas avoir un tas d'erreurs PHP ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Objet avec un tiret dans son nom, comment ne pas avoir un tas d'erreurs PHP ?

Re: [RESOLU] Objet avec un tiret dans son nom, comment ne pas avoir un tas d'erreurs PHP ?

par Couin » 11 oct. 2023, 18:40

Coucou !

Rapide et efficace, impecc' ! Je n’aurais jamais pensé à cette syntaxe.

Merkouin :)

Re: Objet avec un tiret dans son nom, comment ne pas avoir un tas d'erreurs PHP ?

par ynx » 11 oct. 2023, 13:43

Bonjour,

Utilises des accolades pour accéder à une propriété avec un tiret :
if (null !== $xml->icestats->source->{'ice-samplerate'})

Objet avec un tiret dans son nom, comment ne pas avoir un tas d'erreurs PHP ?

par Couin » 11 oct. 2023, 13:30

Coucoutte :D

Je récupère les infos d'un serveur IceCast par son lien :

Code : Tout sélectionner

$statusurl = "https://domaine:port/status-json.xsl"; $xml = json_decode(file_get_contents($statusurl));
Mais dans les infos il y a un champ "ice-samplerate" que je n'arrive pas à récupérer.

Code : Tout sélectionner

if (isset($xml->icestats->source->ice-samplerate)){ $icesamplerate = $xml->icestats->source->ice-samplerate; } else { $icesamplerate = 'NA'; }
Je me mange une erreur :
Cannot use isset() on the result of an expression (you can use "null !== expression" instead)
Si je remplace par :

Code : Tout sélectionner

if (null !== $xml->icestats->source->ice-samplerate){ .....
Je me fait insulter 4 fois par le serveur lol
Notice: Undefined property: stdClass::$source
Notice: Trying to get property 'ice' of non-object
Warning: Use of undefined constant samplerate - assumed 'samplerate' (this will throw an Error in a future version of PHP)
Warning: A non-numeric value encountered
Comment je peux récupérer ce champs qui a ce tiret ? (sachant que j'ai le même probleme avec un autre champ qui a aussi un tiret).
J'ai fouillé pendant un moment mais je ne sais pas par quel terme chercher ce genre de problème , je n'obtiens pas de résultat de recherche pertinents :(

Merkouin :D
Couin