Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Co szybsze - zmienna czy stała?
Forum PHP.pl > Forum > PHP
LamaMASTER
Mam pytanie: chciałbym sobie zrobić system langów, jednak nie wiem co będzie szybsze w przypadku jego definiowania, zmienne czy stałe? Przykład:
  1. <?
  2. define('_SUBMIT','Wyślij');
  3. ?>

oraz:
  1. <?
  2. $lang['submit'] = 'Wyślij';
  3. ?>

Przykład pierwszy jest bardziej praktyczny [tak mi się wydaje]. Wiem, że rola prędkości tutaj to tysięczne części sekundy, ale gdyby takich wpisów było pare tysięcy?

Drugie pytanie: czy mogę stworzyć tablicę dla define? Np.:
  1. <?
  2. $zmienna = array (
  3. '_SUBMIT',
  4. '_ACCEPT'
  5. );
  6. $zamien = array (
  7. 'Wyślij',
  8. 'Akceptuj'
  9. );
  10. define($zmienna, $zamien);
  11. ?>

Czy po takiej operacji będzie można korzystać z _SUBMIT i _ACCEPT oraz czy będzie to szybsze?

Trzecie pytanie: co jest szybsze:
1.
  1. <?
  2. if ($zmienna == '') {
  3. // zmienna jest pusta
  4. }
  5. ?>

2.
  1. <?
  2. if (empty($zmienna)) {
  3. // zmienna jest pusta
  4. }
  5. ?>


empty ładniej wygląda, ale wydaje mi się, że funkcja jest wolniejsza. Jakie są fakty?
LBO
Cytat(LamaMASTER @ 2006-04-30 13:37:17)
Przykład:
  1. <?
  2. define('_SUBMIT','Wyślij');
  3. ?>

oraz:
  1. <?
  2. $lang['submit'] = 'Wyślij';
  3. ?>

Przykład pierwszy jest bardziej praktyczny.

Ad.1 A w czym on jest bardziej praktyczny? 0 (zero) elastyczności. Jak zdefiniujesz różne języki dla stałej? Odpowiem, dla twojego przykłady/wymagań, potrzebujesz zmiennych.
Ad.3 To chyba są na tyle niewielkie/nikłe różnice, że nie trzeba ich brać pod uwagę. Ale jeżeli ciebie to bardzo nurtuje, to zmierz To sobie (microtime" title="Zobacz w manualu php" target="_manual).
LamaMASTER
Systemy portalowe jak np. PostNuke używają w langach define. A co do zmiany langów - mam np. plik eng.php i pol.php, w każdym są zdefiniowane te same stałe, a robię tylko tak:
  1. <?php
  2.  
  3. if ($lang == 'pol')
  4. {
  5. include('pol.php');
  6. }
  7. else if ($lang == 'eng')
  8. {
  9. include('eng.php');
  10. }
  11.  
  12. ?>

Stałe są praktyczniejsze dla tego, że w przypadku braku zdefiniowanej stałej widzę _SUBMIT, a gdy zmienna nie jest zdefiniowana to nic mi się nie wyświetli.

Microtimem nie chcę mierzyć, bo za każdym razem wyjdzie coś innego. Chcę wiedzieć jaka jest średnia i fakty. No i co do tej funkcji empty jeszcze nie słyszałem odpowiedzi
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.