Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Instrukcja if - dodatkowy parametr
Forum PHP.pl > Forum > Przedszkole
krzysiuus
Panowie raczej banalny problem... mianowicie mam coś takiego:

  1. <?php if ( return_page_slug() == 'strona-a' ) { ?>


i to działa, odpowiedzialne jest za wyświetlanie treści tylko na stronie-a.

Chciałbym do tego dodać jeszcze jedną stronę strona-b, próbowałem coś ala:

  1. <?php if ( return_page_slug() == 'strona-a', 'strona-b' ) { ?>


Ale nie bardzo funkcjonuje...
Jakiś pomysł?
Giluś
  1.  
  2. if (
  3. (return_page_slug() == 'strona-a')
  4. OR
  5. (return_page_slug() == 'strona-b')
  6. ) { ?>
  7.  
krzysiuus
Super, dzięki za błyskawiczną odpowiedź.
by_ikar
Radzę poczytać manual o operatorach oraz o różnicy pomiędzy nimi: http://php.net/manual/en/language.operators.logical.php

Dodatkowo, z racji tego że najwidoczniej tego również nie wiesz, struktury kontrolne mają również swoją alternatywną składnie, właśnie do takiego osadzania php w html'u czy innym kodzie: http://php.net/manual/en/control-structure...tive-syntax.php

  1. <?php if(return_page_slug() == 'strona-a' || return_page_slug() == 'strona-b'): ?>
  2. <!-- some html code -->
  3. <?php endif ?>


Pomijam już zupełnie kwestie tego że powinieneś stworzyć jakąś nową funkcję która by sprawdzała jeden lub kilka parametrów i zwracała true/false:

php 5.5 i wcześniejsze

  1. function check_page_slug()
  2. {
  3. $slug = return_page_slug();
  4. $agrs = func_get_args();
  5.  
  6. foreach($agrs as $agr)
  7. {
  8. if($arg == $slug)
  9. {
  10. return true;
  11. }
  12. }
  13.  
  14. return false;
  15. }


php 5.6+

  1. function check_page_slug(...$slugs)
  2. {
  3. $slug = return_page_slug();
  4.  
  5. foreach($slugs as $agr)
  6. {
  7. if($arg == $slug)
  8. {
  9. return true;
  10. }
  11. }
  12.  
  13. return false;
  14. }


  1. <?php if(check_page_slug('strona-a', 'strona-b')): ?>
  2. <!-- some html code -->
  3. <?php endif ?>
Giluś
@by_ikar - Hej.

Jakaś różnica jest między zastosowaniem twojego kodu:

  1. <?php if(return_page_slug() == 'strona-a' || return_page_slug() == 'strona-b'): ?>
  2. <!-- some html code -->
  3. <?php endif ?>


Od mojego:

  1. #|| <- to to samo co OR - raczej, przynajmniej zawsze mi się tak wydawało :) ?
  2.  
  3. <?php if ((return_page_slug() == 'strona-a') OR (return_page_slug() == 'strona-b')) { ?>
  4. <!-- some html code -->
  5. <?php } ?>


Pozdrawiam smile.gif
ZaXaZ
Cytat(Giluś @ 16.09.2014, 20:29:54 ) *
@by_ikar - Hej.

Jakaś różnica jest między zastosowaniem twojego kodu:

  1. <?php if(return_page_slug() == 'strona-a' || return_page_slug() == 'strona-b'): ?>
  2. <!-- some html code -->
  3. <?php endif ?>


Od mojego:

  1. #|| <- to to samo co OR - raczej, przynajmniej zawsze mi się tak wydawało :) ?
  2.  
  3. <?php if ((return_page_slug() == 'strona-a') OR (return_page_slug() == 'strona-b')) { ?>
  4. <!-- some html code -->
  5. <?php } ?>


Pozdrawiam smile.gif


Heh wlasnie @by_ikar dobrze napisal.

or i || znaczy to samo - "lub" roznica jednak polega w Kolejnosci wykonania...
$x or $y
bedzie wygladalo tak:
($x) or $y
aa...
$a || $b
bedzie wygladalo tak:
($a) or ($b)

zwroc uwage na nawiasy. Dzieki || nie musisz ich stosowac w w.w. przykladach.

Edit:
Zajrzyj w link od by_ikar, ten pierwszy. Tam ladnie opisane.
by_ikar
@Giluś - nie napisałem swojego posta po to żeby tobie zwrócić uwagę, skoro wiesz jak działa OR i AND, ale skoro podajesz coś co jest mniej jasne na pierwszy rzut oka początkującemu, może tylko naważyć piwa. A widziałem już nie jeden raz taki kod, w którym or lub and są używane bezsensu, jakby działały identycznie jak && lub ||. Drugą rzeczą jest to że w wielu językach z którymi się zetknie podczas tworzenia stron, używa się w większości przypadków właśnie "moich" operatorów. Kwestii ilości znaków nie przytaczam, bo to jest mniej istotne..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.