Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 5767
PHP. JSON.

Kode

$messagetext = $message['entry'][0]['messaging'][0]['message']['text'];
$attachment = $message['entry'][0]['messaging'][0]['message']['attachments'][0]['payload']['url'];
$postback = $message['entry'][0]['messaging'][0]['postback']['payload'];
Det er bare en av disse som er satt hver gang JSON-filen kommer.
Derfor har jeg satt opp dette:

Kode

if(isset($messagetext)) {
$msg = $messagetext;
}
if(isset($attachment)) {
$msg = $attachment;
}
if(isset($postback)) {
$msg = $postback;
}
For så å kjøre:

Kode

runfunction($msg);
Fins det en bedre måte å gjøre det på?
Jeg vet nå ikke om det er noe bedre, men du kunne jo for eksempel laget en funksjon som looper gjennom en rekke variabler for å sjekke hvem som er satt. Det er kanskje mer hensiktsmessig dersom dette er en funksjon det er bruk for andre plasser.

Kode

function getSetVariable(...$vars){
    foreach($vars as $var){
        if(isset($var)) return $var;
    }
    
    return null;
}

$msg = getSetVariable($messagetext, $attachment, $postback);
Eller så kunne du brukt ?? (mindre leselig og dårligere IMO.)

Kode

$msg = $messagetext ?? $attachment ?? $postback;
Egentlig vil jeg si det du har er ganske godt leselig og fornuftig, bortsett fra at jeg ville brukt "elsif" dersom kun en av de skal være satt. Det vil ikke ha noe innvirkning på logikken i såfall, men gjør at man kan lese utifra koden at det kun er ett tilfelle som kan være gyldig og at man ikke overskriver en "messagetext" dersom både $messagetext og $postback er satt f.eks.
Perfekt, tusen takk
Husk at du kan få endel notices i PHP om noe i arrayet ikke er satt. Og at det kan være lurt å definere $msg og sette en fallback-verdi i tilfelle ingen av de variablene har innhold.