Autor | Zpráva | ||
---|---|---|---|
marek187 Profil |
if(empty($test1 || $test2 || $test3 || $test4)) Táto funkcia empty() mi v podmienke funguje presne ako potrebujem... je to ale valídny/správny zápis?
|
||
Martin2 Profil * |
#2 · Zasláno: 28. 1. 2016, 22:38:34
marek187:
„je to ale valídny/správny zápis?“ Ne. Logické operace se provedou jako první. A skončí chybou v případě neexistence některé z těch proměnných. Funkce empty je tady úplně zbytečná. |
||
marek187 Profil |
Martin2:
„Ne. Logické operace se provedou jako první. A skončí chybou v případě neexistence některé z těch proměnných. Funkce empty je tady úplně zbytečná.“ Ako je teda možné, že to funguje pri tomto zápise bezchybne? if(empty($test1) || empty($test2) || empty($test3) || empty($test4)) |
||
Fisir Profil |
#4 · Zasláno: 28. 1. 2016, 23:24:28
Reaguji na marka187:
Ten druhý zápis dělá něco jiného a je, na rozdíl od toho prvního, logicky správný. |
||
marek187 Profil |
Fisir:
„Ten druhý zápis dělá něco jiného a je, na rozdíl od toho prvního, logicky správný.“ Takže hoci mi to server spracuje pri oboch zápisoch rovnako, prvý neni z logického hladiska správny? |
||
Martin2 Profil * |
#6 · Zasláno: 29. 1. 2016, 00:52:25
marek187:
„Takže hoci mi to server spracuje pri oboch zápisoch rovnako“ Nezpracuje je stejně. Operace proběhnou v jiném pořadí. Nevím, proč používáš empty , ale evidentně ne na to, pro co je určena – k zachycení false nebo not-set hodnoty. Ty v prvním případě využíváš jen detekci false, not-set skončí chybou.
|
||
marek187 Profil |
#7 · Zasláno: 29. 1. 2016, 01:32:27
Martin2:
„Nezpracuje je stejně. Operace proběhnou v jiném pořadí. Nevím, proč používáš empty , ale evidentně ne na to, pro co je určena – k zachycení false nebo not-set hodnoty. Ty v prvním případě využíváš jen detekci false, not-set skončí chybou.“
Používam to v prvom rade preto, lebo to spĺňa účel a je to kratší/jednoduchší zápis... nakoľko mi funkcia empty() posudzuje naraz až 10 premenných a stačí ak len jedna nie je prázdna... potom má platiť podmienka... takže týmto spôsobom detegujem iba false, môže to v tomto prípade nejak ovplyvňovať chybný not-set?
|
||
Martin2 Profil * |
#8 · Zasláno: 29. 1. 2016, 02:12:44
marek187:
„a stačí ak len jedna nie je prázdna... potom má platiť podmienka“ Ne. Podmínka [#1] je splněna, když všechny proměnné při převodu na boolean skončí jako false . Pak je i výsledná disjunkce false a funkce empty vrátí true .
Stejný výsledek tedy obstará i prostá negace. Funkce empty tu neplní žádnou roli.
if(!($test1 || $test2 || $test3 || $test4)) Poradil bych ti studium základů PHP, ale tohle je spíš věc asi 4. třídy základní školy. Tam se přibližně vysvětluje, v jakém pořadí se vyhodnocují závorky (zevnitř směrem ven). |
||
marek187 Profil |
#9 · Zasláno: 29. 1. 2016, 02:37:29
Martin2:
Mne tu nešlo o riešenie zátvoriek, ale v každom prípade ďakujem za ochotu a vysvetlenie... a ten kurz PHP určite zvážim, nakoľko som zatiaľ len samouk. |
||
Časová prodleva: 9 let
|
0