Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Co szybsze - zmienna czy stała?
LamaMASTER
post 30.04.2006, 12:37:17
Post #1





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
LBO
post 30.04.2006, 12:51:42
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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).
Go to the top of the page
+Quote Post
LamaMASTER
post 30.04.2006, 13:49:28
Post #3





Grupa: Zarejestrowani
Postów: 160
Pomógł: 0
Dołączył: 27.03.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.06.2025 - 07:23