Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]php_self i szybsze rozwiązanie
Forum PHP.pl > Forum > Przedszkole
ktosz
siema!

mam coś takiego:

  1. $php_self=$_SERVER['PHP_SELF'];
  2. if (!($php_self=='/strona.php' || $php_self=='/strona1.php' || $php_self=='/strona22.php' || $php_self=='/strona7.php' || $php_self=='/strona13.php' || $php_self=='/strona11.php' || $php_self=='/strona5.php' || $php_self=='/strona9.php' ))
  3. {
  4. echo "wyświetli to";
  5. }



i wyświetla mi się coś tam, jeśli użytkownik nie jest na której z podanych podstronach. Czy istnieje jakieś bardziej optymalne rozwiązanie? Bo mam w niektórych miejscach 30 takich || $php_self=='/strona11.php' itd.


proszę was o pomoc! dzieki dzieki!
nansss93
Możesz sobie zrobić tablice i sprawdzać in_array
ktosz
Chodzi mi o to, czy będzie szybciej?
KsaR
  1. $pageNumbers = array(1, 5, 7, 9, 11, 13, 22); // numery stron.
  2. if (strpos($php_self, '/strona') !== false) {
  3. $pageNr = str_replace(array('/strona', '.php'), '', $php_self);
  4. if (!in_array($pageNr, $pageNumbers) && $php_self !== '/strona.php') {
  5. echo 'Wyświetli to';
  6. }
  7. }


__
Edit. 12:31 po przemyśleniu:
Mozesz do $pageNumbers dodac pusty string '', wraz z skasowaniem z if'a && $php_self !== '/strona.php'
Jak masz PHP 5.4+ mozesz zmienic array() na [] co oznacza to samo i jest także szybsze w ms oraz krótsze.

I jak sam twierdzisz w niektórych miejscach masz 30+ takich operacji porównania więc te kilka wbudowanych w php funkcji powinno być szybsze.
nospor
Na pewnie bedzie bardziej czytelniej i łatwiejsze w uzyciu. Co do szybkosci to nawet jesli bedzie szybsze to o jedna petryliardowa sekundy wink.gif
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.