Bodite previdni pri praznem PHP-ju, ko ga uporabljate v WordPress bližnjicah

Zelo pogosto obstajajo primeri na spletnih virih za proučevanje in razvoj vtičnikov za Wordpress, ki predlagajo uporabo PHP praznega preverjanja atributov kratkih kod. Toda poglejmo, kako deluje ta funkcija in kakšne napake se lahko pojavijo, če se ne uporablja pravilno.

Značilnosti funkcije empty (), ki jo morate poznati

V skladu s priročniki na php.net ta funkcija preverja, ali je prazna spremenljivka prazna. Če spremenljivka ne obstaja, prazna () ne bo dala napake. Na primer, naj se spremenljivka $ foo ne nastavi na:

če (prazna ($ foo)) {echo "spremenljivka je prazna";} //bo prikazala "spremenljivka je prazna"
7) Zato potrebujemo dodatno preverjanje s funkcijo isset ():

$ foo = 1; 
if (isset ($ foo) & prazno ($ foo)) {echo "variable =". $ foo;} //bo prikazal "spremenljivko = 1"

, katerega PHP prazen () je prazen, je:

  • "(vrstice - strlen (")) == 0);
  • 0 (cela števila - (int) 0);
  • 0.0 (plavajoče številke - 0,0)
  • "0" (nizi - strlen ("0") == 1),
  • NULL;
  • FALSE
  • array () (prazni nizi - štetje (array ()) == 0).
$ string_1 = ";
echo strlen ($ string_1); //izhod 0
, če (prazen ($ string_1)) {echo 'string_1 je prazen';} //bo natisnil string_1 je prazen

$ string_2 = '0';
echo strlen ($ string_2); //izhod 1
, če (prazno ($ string_2)) {echo 'string_2 je prazno';} //vrne "string_2 je prazen"

Niz ($ string_2), ki je en znak z nizom nič ('0'), prav tako izgleda prazen.

& lt; skript async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_1 - & gt;

& lt; script & gt; (adsbygoogle = okno.

$ string_3 = '';
odmevstrlen ($ string_3); //bo natisnil 1
, če (prazno ($ string_3)) {echo 'string_3 je prazno';} //nič ne bo izpeljano

Menimo, da je praktična uporaba PHP prazna in videti, kako lahko ta funkcija privede do nepričakovanega rezultata.

Uporaba funkcije empty () za preverjanje atributov kratkih kod v vtičnikih WordPress

Na primer, razvijate vtičnik za Wordpress, ki bo uporabljal kratke kode za prikazovanje člankov različnih avtorjev. Na strani vašega računa bo vsak avtor v zadnjem mesecu prikazal svoje članke (»jaz«) in članke drugih avtorjev (»drugo«). S pomočjo kratke kode lahko nadzorujete število izhodnih člankov. Če atributi "self" in "another" privzeto nista nastavljeni, bomo na primer izpisali 25 lastnih objav in 15 objav drugih avtorjev.

& lt; skript async = "//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
& lt ;! - fb_336x280_2 - & gt;

& lt; skript & gt; (adsbygoogle = window.adsbygoogle || []). push ({});
[author_posts]

Če želite spremeniti vrednost, dodajte še druge številke atributov kratke kode:

[author_posts self = "10" drugo = " 5]]

Poglejmo, kaj je v kodi vtičnika:

", 
" drugo "= & gt;"
,
$ atts,
„avtorski prispevki“
);
če (! Empty ($ atts ['self'])))
echo $ atts ['self']. "Post (i)";
} drugo {
echo "25 samozaposlenih";}
, če (! Empty ($ atts ['drug'])) {
echo $ atts ['drugo']. s) ";
} else {
echo "15 objav drugih avtorjev";
}
}
add_shortcode ('author_posts', 'posts_shortcode');

Tukaj preprosto natisnemo podatke, ki jih je uporabnik posredoval prek kratke kode. Tako bomo videli 10 lastnih objav in 5 drugih avtorjev.


& lt; script type = "text /javascript" & gt;
lahko blockSettings2 = {blockId: "R-A-70350-39", renderTo: "yandex_rtb_R-A-70350-39", async: 0};
če (document.cookie.indexOf ("abmatch ="))>blockSettings2.statId = 70350;
Funkcija (a, b, c, d, e) {a [c] = a [c] || [], a [c] .push (funkcija () {Ya.Context.AdvManager.render (blockSettings2)}), e = b.getElementsByTagName ("script") , d = b.createElement ("script"), d.type = "text /javascript", d.src = "//an.yandex .ru /system /context.js ", d.async =! 0e.parentNode.insertBefore (d, e)} (ta, ta.dokument," yandexContextAsyncCallbacks ");

Če ne želimo videti, na primer, delovnih mest drugih avtorjev, bomo v kratki kodi "another = 0" napisali, in prispevki drugih avtorjev ne bodo prikazani. Toda ne! Funkcija PHP empty () upošteva niz "0" kot prazno vrednost in namesto "0" objav drugih avtorjev prikaže privzeto vrednost, to je 15 vnosov namesto nič.

Z drugimi besedami, ta dva podobna zapisa:

[author_posts another = "0"]
[author_posts]

Za pravilno delovanje kratke kode , spremeni pogoj:

$ is_null = (int) (- 1); 

„drugo“ = & gt; $ is_null,

if ($ atts ['drug']> -1) {
echo $ atts ['drug']. "post (s)";
} else {
echo "15 objav drugih avtorjev";
}

Če atribut "drugo" ni določen, ga privzeto pustite (-1). Potem bomo v pogoju predpostavili, da je atribut podan, če je več (-1).

Tako je ta kratka koda:

[author_posts another = "0"]

zdaj pravilno prikazuje, da je privzeto 25 člankov avtorja (na primer, atribut "self" ni določen) in nobenih člankov drugih avtorjev.

Celotna koda:

", 
" drugo "=> $ is_null,
),
$ atts, 115) 'author_posts'
)
če (! Empty ($ atts ['self'])) {
echo $ atts ['self']. mail (s)
";
} else {
echo" 25 samostojnih objav
";}
if ($ atts ['drugo']> -1) {{124} echo $ atts ['drugo']. "
}
}
add_shortcode ('author_posts', 'posts_shortcode');
}
}


Lahko se spomnite svojega stanja, je pomembno,da ste videli funkcije funkcije empty () in da še vedno ne boste naredili nobene napake pri uporabi. Postavite to datoteko v mapo Wordpress "/wp_content /plugins /" aktivirajte vtičnik v skrbniški plošči.

Možnosti za zamenjavo praznih () drugih PHP funkcij

Da bi razumeli, kaj zamenjati prazno (), moramo vedeti, kaj imamo, npr. število ali velikost njegovih funkcij;
  • Če je spremenljivka lahko napačna, uporabite if (false == $ var);
  • če spremenljivka ni nastavljena, potem uporabite iset ali is_null ();
  • so številke is_numeric ().
  • Veliko možnosti je mogoče najti, da bi program čim bolj natančno deloval, napisati lastno funkcijo, ki bo analizirala podatke, kot jih potrebujete. Ugotovili smo, da je prazen PHP funkcija, ki preverja, ali je spremenljivka prazna. Zapomnite si, katere vrednosti spremenljivk so nastavljene na nič, če jih uporabite v svoji kodi, tako da potem ne iščete, zakaj program deluje nepravilno.

    Sorodne publikacije