über 1
:
In PHP, ||
nicht tun, was Sie vielleicht aus Richtung JavaScript erwarten, denn das Ergebnis wird immer eine boolean sein. ||
konvertiert implizit seine Operanden in boolesche Werte und gibt das Ergebnis zurück.
Um das Äquivalent eines Kurzschlusses ||
von JavaScript in PHP zu bekommen, Sie ?:
verwenden können (die so genannte "Elvis Operator" - x ?: y
ist eine Abkürzung für x ? x : y
):
$days = isset($dy['value']) || isset($days['value']) ? ($dy['value'] ?: $days['value']) : null;
I didn Ändern Sie nicht die erste ||
, weil es in der Tat eine boolesche Operation ist, aber ich habe die zweite ersetzt.
aber ich denke, es gibt eine Fehlerlogik ist sowieso in Ihrem Code, denn wenn man E_NOTICE
Fehler haben die Berichterstattung über, wird PHP sowieso beschweren, wenn $days['value']
gesetzt und $dy['value']
ist nicht, weil Sie noch $dy['value']
Zugriff sind auch wenn isset($dy['value']) == false
. So müssten Sie verwenden, zum Beispiel: (. Vorausgesetzt, dass Sie auch einen Wert überspringen wollen, wenn es falsy ist - je nachdem, wie Sie die ||
verwenden es wie es aussieht)
$days = (isset($dy['value']) ? $dy['value'] : null) ?: (isset($days['value']) ? $days['value'] : null);
Wenn Sie nicht über Bekanntmachung Fehler kümmern haupt (! entmutigt) konnte man nur verwenden:
$days = $dy['value'] ?: $days['value'] ?: null;
CherryDT du rockst! Eine der besten detaillierten Antworten noch ... – no1uknow
Thx! Erklärung, was dieser Operator tatsächlich ist. – CherryDT