Ištuštinti php kelis kintamuosius. Išmokite naudoti PHP tuščią() funkciją

PHP reikšmės FALSE ir NULL bei su jomis susijusios reikšmės skiriasi nuo to, kaip paprastai yra kitomis kalbomis, ir turi savo neakivaizdžių savybių.
Straipsnyje aptariamos šios savybės.
Pradedantiesiems tai gali būti naudinga norint pamatyti visą vaizdą, patyrusiems skaitytojams, gali būti naudinga atgaivinti atmintį, jei išslydo koks niuansas.

FALSE If teiginiuose

Remiantis PHP dokumentacija, šios reikšmės yra FALSE po perdavimo loginiu formatu:
  • pati loginė reikšmė yra FALSE
  • tuščią eilutę ("") ir eilutę "0".
  • tuščias masyvas (masyvas) – array().
  • objektas su nuliniais narių kintamaisiais (tik PHP 4, šiame straipsnyje neaprašytas)
  • speciali NULL reikšmė (įskaitant nenustatytus kintamuosius)
  • SimpleXML objektai (šiame straipsnyje neaptariami)
Tai reiškia, kad jei tokios reikšmės perduodamos sąlygai:
jei (...) kartoja „1“; kitaip aidas „0“;
tada bus išspausdinta eilutė "0".

Jei kintamojo reikšmė nenustatyta (nustatyta), taip pat gali būti pateiktas įspėjimas. Priminsime, kad sąlygoje esantį įspėjimą galima pašalinti prieš kintamąjį parašius @.

Pavyzdžiui:

Jei (@$undefVar) (…)
Tačiau @ turėtumėte naudoti tik kraštutiniais atvejais, kai gerai apgalvojote ir nėra kitų tinkamų variantų. Žr. funkciją isset().

Funkcija is_null() ir kalbos konstrukcijos isset() ir empty()

is_null() grąžina TRUE tik tiems kintamiesiems, kuriems nepriskirta jokia reikšmė arba kuriems priskirta reikšmė NULL .
isset() grąžina logines reikšmes vienas su vienu, palyginti su is_null() .
Jei kintamajam nėra priskirta reikšmė, tada is_null() taip pat pateikia įspėjimą „Neapibrėžtas kintamasis“, skirtingai nei isset(), kuris neteikia jokio įspėjimo.
Prisiminkite, kad norėdami pašalinti kintamojo reikšmę, galite naudoti funkciją unset(). Taip pat šiam tikslui galite priskirti reikšmę NULL, kad išvengtumėte kompiliatoriaus įspėjimų bandant nuskaityti kintamojo reikšmę.

Atkreipkite dėmesį, kad, priešingai nei kintamieji, norėdami dirbti su konstantomis, turite naudoti konstrukciją apibrėžtas().

Stygų atvaizdavimas

Pažvelkime į klaidingų konstantų stygų atvaizdavimą.
Pavyzdžiui, sujungimas konvertuoja reikšmes į šias eilutes, parodytas toliau esančioje lentelėje:

Konvertavimo į eilutes tema išsamiau aprašyta oficialios svetainės pastraipoje Konvertavimas į eilutę.

Palyginimo operatoriai

Pereikime prie palyginimo operatorių.
Visos klaidingos reikšmės grąžina teisingą, kaip ir tikėtasi, lyginant su FALSE naudojant operatorių " ==".
Tačiau čia neturėtumėte pasikliauti tranzityvumu, kai lyginate klaidingas eilutės konstantas.
Čia yra visa lentelė, skirta palyginti klaidingas vertes (pliusas reiškia lentelės elementus, kurie, lyginant naudojant operatorių „!=“, grąžina tikrąją reikšmę:

$undef – kintamasis, kuriam nebuvo priskirta reikšmė

Iš lentelės galima padaryti keletą malonių išvadų:
1. Jei žinome, kad naudojame tik eilutes, tai galime drąsiai jas lyginti ir nesijaudinti, kad „“ (tuščia eilutė) bus lygi „0“.
2. Masyvai niekada nėra lygūs eilutėms, sveikiesiems skaičiams ar realiesiems skaičiams.

Kadangi skirtingų klaidingų konstantų tipai yra skirtingi, joms atskirti galima naudoti operatorių porą === ir !==.
=== operatorius grąžina false visoms klaidingų reikšmių poroms.
Grąžina tikrąją reikšmę tik tiems argumentams, kurių vienam priskiriama reikšmė NULL, o antrajam nepriskiriama jokia reikšmė.

Skirtumas tarp kintamųjų, kurių reikšmė NULL, ir neapibrėžtų kintamųjų

Operatorius === leidžia atskirti visas klaidingas reikšmes, išskyrus kintamuosius su NULL reikšme nuo kintamųjų, kuriems nebuvo priskirta reikšmė.

Tokius kintamuosius galima atskirti naudojant funkciją get_defined_vars().

Jei reikia nustatyti, ar kintamajam $var buvo priskirta reikšmė, tai galima atlikti naudojant šį kodo fragmentą:
if (array_key_exists("var", get_defined_vars())) ( echo "var yra apibrėžtas"; // $var priskirtas NULL ) else ( echo "var nėra apibrėžtas"; // $var neapibrėžtas arba unset($ var) skambino)

išvadas

Visada turėtumėte atsiminti, kad PHP dvi klaidingos reikšmės gali būti nelygios viena kitai, o kintamieji, kurie iš pirmo žvilgsnio atrodo skirtingi, gali pasirodyti tokie patys, kai juos palyginsite. Norėdami išvengti tokių netikėtumų, galite naudoti operatorius === ir !==.

Dirbdami su masyvais, kad išvengtumėte netikėtumų, galite parašyti funkciją, skirtą konvertuoti reikšmes į garantuotus skirtingus indeksus. Po to masyvo elementus galima pasiekti tik jį naudojant. Tai gali sulėtinti programą, bet padės išvengti netikėtumų.

Šiuolaikinis programavimas ilgą laiką sėkmingai manipuliuoja neįtaisytais kintamaisiais. Kintamojo tipas negali būti nurodytas iš anksto ir gali būti pakeistas programos vykdymo metu.

Ši koncepcija tapo pagrindine bendros programavimo paradigmos. Pačioje programavimo eros pradžioje kalbos, turinčios tokį patį kruopštų pasitikėjimą, reikalavo, kad programuotojas iš anksto nustatytų kintamuosius ir griežtai užtikrintų, kad joms nebūtų priskirta nieko nelegalaus. Nei programos, nei programavimo kalbos anksčiau neturėjo supratimo, kad kintamasis keičia savo tipą.

Apie tuščią ir neegzistuojančią

PHP tuščias() funkcija yra atvirkštinė funkcijai isset() ir turi keletą specialių naudojimo funkcijų. Jei kintamojo nėra, tada pirmoji funkcija atsako teigiamai ir jos rezultatas yra teisingas, o antroji – neigiamai, tai yra, jos reikšmė bus klaidinga.

Pagal apibrėžimą isset () yra skirtas patikrinti kintamojo egzistavimą. Nesvarbu, kas ir kaip buvo priskirtas kintamasis, svarbiausia, kad jis egzistuotų ir jo nesunaikintų funkcija unset(). Funkcijos isset() rezultatas bus teigiamas – tiesa. Svarbu atsiminti, kad jei $iVar = 0; tada isset($iVar) bus tiesa, bet tuščias($iVar) taip pat bus teisingas.

Pirmuoju atveju rezultatas reiškia, kad kintamasis egzistuoja, antruoju atveju kintamasis yra tuščias, tai yra reikšmė "0" bet kokia forma, nesvarbu, ar tai eilutė ("0"), ar skaičius (trupmeninis - 0,0 arba sveikasis skaičius – 0) yra tas pats: tuščias ($iVar) bus teisingas.

Apie saugumą ir kontrolę

Praktika rodo, kad nespausdintos kalbos programuotojui suteikia daug daugiau laisvės, tačiau manoma, kad jo požiūris į darbą su algoritmu yra atsakingesnis.

PHP siūlo modernią sintaksę, kuri palaiko nusistovėjusią semantiką, turi nedaug klaidų, tačiau reikalauja kruopštaus dėmesio. Pavyzdžiui, norint iškviesti bet kurią funkciją, reikia tam tikro skaičiaus parametrų.

Iškviečiant funkciją visai nebūtina perduoti visų parametrų, galite perduoti tik didelę jų dalį. Funkcija „privalo“ patikrinti visų parametrų buvimą ir egzistavimą. Tiems, kurių trūksta arba kurių reikšmės yra neteisingos, reikia atkurti įprastą formą ir priskirti reikiamas reikšmes.

Šiame kontekste PHP tuščias () funkcija yra labai svarbi. Išraiška:

$a = "1;2" + 20

kintamajam $a priskirs reikšmę 21, nes pirmoji išraiškos dalis bus pavaizduota kaip 1, o antroji – 20.

Rezultatas bus tipo numeris, o PHP funkcijos tuščias($a) rezultatas - false, tai yra, kintamasis $a nėra tuščias.

Šiame kontekste turintis funkciją:

FuncTest ($a = 0, $b = 20)

Kai skambina:

$res = funkcTest($aVal, $bVal)

turės tai, ko norima, tai yra funkcijos rezultatą. Ir kai skambina:

  • $res = funcTest($aVal. $bVal)

Funkcijos turinyje yra tik vienas parametras, kurio reikšmė yra "$aVal . $bVal" ir greičiausiai šis parametras bus interpretuojamas kaip simbolių eilutė.

PHP tuščias () objektams ir masyvams

Kalbos sintaksėje yra pakankamai konstrukcijų ir funkcijų darbui su objektais ir masyvais, tačiau tikrinant, ar jie yra ir ar yra reikšmės, ypatingų skirtumų nuo kintamųjų nėra.

PHP tuščias (masyvas) – atitinka iškvietimą tuščias (paprastas kintamasis). Tačiau yra labai svarbių dalykų, susijusių su objektais. Kalbant apie objekto egzistavimo (isseto) patikrinimą, klausimas vargu ar prasmingas. Kalbant apie PHP tuščią() funkciją, jos naudojimo tikslingumas išlieka abejotinas.

Pagal objektinio programavimo logiką objektas turi savo turinį ir savo metodų rinkinį. Tik pats objektas gali pasakyti, ar jis tuščias, ar ne, bet ne trečiosios šalies funkcija, net jei ji yra kalbos sintaksės dalis.

Objektas ir jo funkcija tuščia ()

Šiuo paprastu, bet teisėtu pagrindu kiekvienas objektas turėtų būti vertinamas jo „tuštumos“ supratimo kontekste. Pavyzdžiui, objekto „Personalo lentelė“ įgyvendinimas susideda iš „Darbuotojo“ įrašų. Bet jei nėra nė vieno darbuotojo, tada „Personalo sąraše“ visada yra galimybių užimti potencialių darbuotojų pareigas.

Kokiu lygiu čia turėčiau naudoti PHP tuščio objekto funkciją? „Personalo“ lygmenyje viskas egzistuoja, net jei nėra nei vieno darbuotojo. „Darbuotojo“ lygmenyje objektas jau yra, net jei jis nėra visiškai užpildytas. Ne visiškai užpildytas objektas gali būti priskirtas tuščiam objektui. Darbuotojų stalui iš to jokios naudos.

Priklausomai nuo jūsų programavimo stiliaus, PHP funkcijos empty() ir isset() yra labai svarbios kuriant saugų ir patikimą algoritmą, tačiau objektams vis tiek geriau turėti tuščią() variantą, apibrėžtą jo turiniu.

kintamoji eilutė (12)

Turiu funkciją isNotEmpty, kuri grąžina true, jei eilutė nėra tuščia, ir false, jei eilutė tuščia. Sužinojau, kad tai neveikia, jei pro jį perbraukiu tuščią eilutę.

Funkcija isNotEmpty($input) ( $strTemp = $input; $strTemp = trim($strTemp); if(strTemp != "") //Taip pat išbandyta "if(strlen($strTemp) > 0)" ( return true ) return false ;

Eilutė patikrinama naudojant isNotEmpty:

If(isNotEmpty($userinput["phoneNumber"])) ( //patvirtinti telefono numerį ) else ( echo "Telefono numeris neįvestas
"; }

Jei eilutė tuščia, kitaip nevykdoma, nesuprantu kodėl, ar kas nors gali tai paaiškinti.

Atsakymai

jei turite lauką serial_number ir norite patikrinti, ar nėra tuščios vietos

$serijos_numeris = trim($_POST); $q="pasirinkite * iš produkto, kuriame user_id="$_SESIJA""; $rs=mysql_query($q); while($row=mysql_fetch_assoc($rs))(if(empty($_POST["geležinimai"]))( $geležies = $row["product1"]; )

tokiu būdu galite kartoti visas kilpas su kita tuščia funkcija

Na, o vietoj atsakymo (tikiu, kad jau išsprendei savo problemą), duosiu tau keletą patarimų.

Nežinau kaip visi kiti, bet aš asmeniškai labai susierzinu, kai pamatau kažką panašaus į:

Jei (<>) ( return true; ) return false;

tam reikia elegantiško " grąžinimo (<>); “ Visada pažiūrėkite į savo kodą ir pašalinkite šią logiką. Dėl kiekviena situacijoje IF teiginio nereikia.

Tiesiog rašau savo funkciją is_string, kad patikrinčiau tipus ir strlen, kad patikrinčiau ilgį.

Funkcija emptyStr($str) ( return is_string($str) && strlen($str) === 0; ) print emptyStr("") ? "tuščias" : "ne tuščias"; // tuščia

REDAGUOTI: Taip pat galite naudoti apkarpymo funkciją, kad patikrintumėte, ar eilutėje nėra.

Is_string($str) && strlen(trim($str)) === 0;

PHP turi integruotą funkciją tuščias() Testas atliekamas įvedus if(empty($string))(...) php.net nuoroda: php empty

Jūs turite atsakymą, bet jūsų atveju galite jį naudoti

Grąžinti tuščią($input);

Return is_string($input);

Paprasta problema. Keisti:

If(strTemp != "")

If($strTemp != "")

Galbūt taip pat galite jį pakeisti į:

If($strTemp !== "")

kadangi != "" grąžins true, jei perduosite skaitinį skaičių 0 ir keletą kitų atvejų dėl PHP automatinio tipo konvertavimo.

Taip pat atminkite, kad PHP jau turi tuščią () funkciją.

PHP tuščią eilutę įvertina kaip false, todėl galite tiesiog naudoti:

If (trim($userinput["phoneNumber"])) ( // patvirtinkite telefono numerį ) else ( echo "Telefono numeris neįvestas
"; }

Aš visada naudoju regex, kad patikrinčiau, ar nėra tuščios eilutės, kilusios iš CGI / Perl ir Javascript laikų, taigi kodėl gi ne, pavyzdžiui, PHP (nors ir nepatikrinta)

Grąžinti preg_match("/\S/", $input);

Kur \S reiškia bet kokį simbolį be tarpų

Tiesiog naudokite strlen() funkciją

If (strlen($s)) ( // ne tuščias )

Neseniai uždaviau sau tą patį klausimą.
Galimi keli sprendimai, čia yra 3 tinkami:

  • s.indexOf(starter) === 0
  • s.substr(0,starter.length) === starteris
  • s.lastIndexOf(starter, 0) === 0 (pridėta peržiūrėjus Marko Bayerio atsakymą)
  • naudojant kilpą:

    Funkcija startsWith(s,starter) ( for (var i = 0,cur_c; i< starter.length; i++) { cur_c = starter[i]; if (s[i] !== starter[i]) { return false; } } return true; }

Aš nesu susidūręs su pastaruoju sprendimu, kuris apima kilpos naudojimą.
Keista, bet šis sprendimas yra žymiai pranašesnis už pirmuosius 3.
Štai jsperf testas, kurį atlikau, kad padaryčiau tokią išvadą: http://jsperf.com/startswith2/2

ps: ecmascript 6 (harmony) pristato savo startsWith metodą stygoms.
Pagalvokite, kiek laiko būtų sutaupę, jei jie būtų sugalvoję įtraukti šį labai reikalingą metodą į pirmąją versiją.

Atnaujinti

Atminkite, kad Steve įtraukė 2 ciklo optimizavimus, pirmasis iš dviejų parodė geresnį našumą, todėl šį kodą paskelbsiu toliau:

Funkcija prasidedaSu2(str, priešdėlis) ( if (str.length< prefix.length) return false; for (var i = prefix.length - 1; (i >= 0) && (str[i] === priešdėlis[i]); --aš tęsiu; grąžinti i< 0; }

PHP reikšmės FALSE ir NULL bei su jomis susijusios reikšmės skiriasi nuo to, kaip paprastai yra kitomis kalbomis, ir turi savo neakivaizdžių savybių.
Straipsnyje aptariamos šios savybės.
Pradedantiesiems tai gali būti naudinga norint pamatyti visą vaizdą, patyrusiems skaitytojams, gali būti naudinga atgaivinti atmintį, jei išslydo koks niuansas.

FALSE If teiginiuose

Remiantis PHP dokumentacija, šios reikšmės yra FALSE po perdavimo loginiu formatu:
  • pati loginė reikšmė yra FALSE
  • tuščią eilutę ("") ir eilutę "0".
  • tuščias masyvas (masyvas) – array().
  • objektas su nuliniais narių kintamaisiais (tik PHP 4, šiame straipsnyje neaprašytas)
  • speciali NULL reikšmė (įskaitant nenustatytus kintamuosius)
  • SimpleXML objektai (šiame straipsnyje neaptariami)
Tai reiškia, kad jei tokios reikšmės perduodamos sąlygai:
jei (...) kartoja „1“; kitaip aidas „0“;
tada bus išspausdinta eilutė "0".

Jei kintamojo reikšmė nenustatyta (nustatyta), taip pat gali būti pateiktas įspėjimas. Priminsime, kad sąlygoje esantį įspėjimą galima pašalinti prieš kintamąjį parašius @.

Pavyzdžiui:

Jei (@$undefVar) (…)
Tačiau @ turėtumėte naudoti tik kraštutiniais atvejais, kai gerai apgalvojote ir nėra kitų tinkamų variantų. Žr. funkciją isset().

Funkcija is_null() ir kalbos konstrukcijos isset() ir empty()

is_null() grąžina TRUE tik tiems kintamiesiems, kuriems nepriskirta jokia reikšmė arba kuriems priskirta reikšmė NULL .
isset() grąžina logines reikšmes vienas su vienu, palyginti su is_null() .
Jei kintamajam nėra priskirta reikšmė, tada is_null() taip pat pateikia įspėjimą „Neapibrėžtas kintamasis“, skirtingai nei isset(), kuris neteikia jokio įspėjimo.
Prisiminkite, kad norėdami pašalinti kintamojo reikšmę, galite naudoti funkciją unset(). Taip pat šiam tikslui galite priskirti reikšmę NULL, kad išvengtumėte kompiliatoriaus įspėjimų bandant nuskaityti kintamojo reikšmę.

Atkreipkite dėmesį, kad, priešingai nei kintamieji, norėdami dirbti su konstantomis, turite naudoti konstrukciją apibrėžtas().

Stygų atvaizdavimas

Pažvelkime į klaidingų konstantų stygų atvaizdavimą.
Pavyzdžiui, sujungimas konvertuoja reikšmes į šias eilutes, parodytas toliau esančioje lentelėje:

Konvertavimo į eilutes tema išsamiau aprašyta oficialios svetainės pastraipoje Konvertavimas į eilutę.

Palyginimo operatoriai

Pereikime prie palyginimo operatorių.
Visos klaidingos reikšmės grąžina teisingą, kaip ir tikėtasi, lyginant su FALSE naudojant operatorių " ==".
Tačiau čia neturėtumėte pasikliauti tranzityvumu, kai lyginate klaidingas eilutės konstantas.
Čia yra visa lentelė, skirta palyginti klaidingas vertes (pliusas reiškia lentelės elementus, kurie, lyginant naudojant operatorių „!=“, grąžina tikrąją reikšmę:

$undef – kintamasis, kuriam nebuvo priskirta reikšmė

Iš lentelės galima padaryti keletą malonių išvadų:
1. Jei žinome, kad naudojame tik eilutes, tai galime drąsiai jas lyginti ir nesijaudinti, kad „“ (tuščia eilutė) bus lygi „0“.
2. Masyvai niekada nėra lygūs eilutėms, sveikiesiems skaičiams ar realiesiems skaičiams.

Kadangi skirtingų klaidingų konstantų tipai yra skirtingi, joms atskirti galima naudoti operatorių porą === ir !==.
=== operatorius grąžina false visoms klaidingų reikšmių poroms.
Grąžina tikrąją reikšmę tik tiems argumentams, kurių vienam priskiriama reikšmė NULL, o antrajam nepriskiriama jokia reikšmė.

Skirtumas tarp kintamųjų, kurių reikšmė NULL, ir neapibrėžtų kintamųjų

Operatorius === leidžia atskirti visas klaidingas reikšmes, išskyrus kintamuosius su NULL reikšme nuo kintamųjų, kuriems nebuvo priskirta reikšmė.

Tokius kintamuosius galima atskirti naudojant funkciją get_defined_vars().

Jei reikia nustatyti, ar kintamajam $var buvo priskirta reikšmė, tai galima atlikti naudojant šį kodo fragmentą:
if (array_key_exists("var", get_defined_vars())) ( echo "var yra apibrėžtas"; // $var priskirtas NULL ) else ( echo "var nėra apibrėžtas"; // $var neapibrėžtas arba unset($ var) skambino)

išvadas

Visada turėtumėte atsiminti, kad PHP dvi klaidingos reikšmės gali būti nelygios viena kitai, o kintamieji, kurie iš pirmo žvilgsnio atrodo skirtingi, gali pasirodyti tokie patys, kai juos palyginsite. Norėdami išvengti tokių netikėtumų, galite naudoti operatorius === ir !==.

Dirbdami su masyvais, kad išvengtumėte netikėtumų, galite parašyti funkciją, skirtą konvertuoti reikšmes į garantuotus skirtingus indeksus. Po to masyvo elementus galima pasiekti tik jį naudojant. Tai gali sulėtinti programą, bet padės išvengti netikėtumų.

Testavimas buvo atliktas naudojant PHP 5.3.1.

Papildomos nuorodos

1. PHP tipų palyginimo lentelės.
2. MySQL Null ir Empty Strings PHP kontekste.

Žymos: pridėti žymų

Jei dirbant su eilutėmis reikia patikrinti, ar eilutė yra tuščia, pradedantieji programuotojai dažniausiai naudoja funkciją strlen(). Ši funkcija gana greita, nes neatlieka jokių skaičiavimų, o tiesiog grąžina jau žinomą eilutės ilgio reikšmę, prieinamą zval (PHP naudoja C struktūrą kintamiesiems saugoti). Bet vis tiek, nes... strlen()- tai funkcija, ji yra šiek tiek lėta, nes ją iškvietus reikia atlikti kelis veiksmus, pvz., konvertuoti į mažąsias raides ir ieškoti maišos lentelėje. Kai kuriais atvejais galite padidinti kodo vykdymo greitį naudodami tuščia()..., bet taip pat tuščia() Vis tiek galite šiek tiek optimizuoti.

Paimkime pavyzdį Pavyzdžiui patikrinti vaizdo kelią, funkcija patikrina, ar kelias tuščias, tada pakeičia jį kitu keliu, pvz., „images/noimage.jpg“.

Taigi visa užduotis susiveda į patikrinimą, ar eilutės tipo kintamasis yra tuščias. Išbandykime 4 būdus:

  • if(strlen($img_path)>0)
  • if($img_path(0))
  • if(tuščias($img_path))
  • ir dar vienas būdas paskutiniam.

Taigi mes parašysime pirmuoju būdu:

Funkcija check_image_path($img_path ) ( if (strlen ($img_path ) >0 ) ( $img_path = "images/noimage.jpg" ; ) return $img_path ; )

Atlikime testavimą, užtruko vidutinis bandymo laikas 1.43795800209 sek.

Pagalvojus apie tai šiek tiek plačiau... Galite pasiekti pirmąjį eilutės simbolį iš karto, o ne visą eilutę. Jei yra pirmasis simbolis, eilutė nėra tuščia. Pirmasis eilutės simbolis yra sunumeruotas „0“.

Funkcija check_image_path($img_path) ( if ($img_path ( 0 ) ) ( $img_path = "images/noimage.jpg" ; ) grąžina $img_path ; )

vidutinis bandymo laikas 1.19431300163 sek., 17 % žaidimo laiko

Pabandykime parašyti naudodami tuščią () dabar:

Funkcija check_image_path($img_path) ( if (empty ($img_path) ) ( $img_path = "images/noimage.jpg" ; ) return $img_path ; )

vidutinis bandymo laikas 1.1341319084 sek., 5% atkūrimo laiko pagal ankstesnį pavyzdį

Dabar pažvelkime į priešpaskutinį ir paskutinį aukščiau pateiktą pavyzdį. Pažiūrėkime, kaip tai galima sujungti. pagalvok... kaip dar galima optimizuoti?

Funkcija check_image_path($img_path) ( if (empty ($img_path ( 0 ) ) ) ( $img_path = "images/noimage.jpg" ; ) return $img_path ; )

vidutinis bandymo laikas 1.07465314865 sek., ir vėl laimėjome 5% laiko...

Kaip tai veikia ir kodėl greičiau? Ir čia $img_path(0) grąžina pirmąjį simbolį... ir tada funkciją tuščia() tikrina, ar nėra tuščios eilutės... skirtumas nuo ankstesnio pavyzdžio yra tas, kad funkcijai perduodamas tik vienas simbolis, o ne visa eilutė. Taigi, nuo pirmojo pavyzdžio iki paskutinio mes laimėjome 25% laikas.