Nauka programowania php

Prosty kurs dla amatorów

Stałe

Rozdział 13. Stałe

Stała jest identyfikatorem (nazwą) dla prostej wartości. Jak sama nazwa wskazuje, wartość ta nie może się zmieniać podczas działania skryptu (poza magicznymi stałymi, które na właściwie nie są stałymi). Domyślnie, przy stałych uwzględniana jest wielkość liter. Przyjęto, że stałe są pisane dużymi literami.

Nazwa stałej podlega takim samym zasadom jak każda inna w PHP. Prawidłowa nazwa stałej rozpoczyna się literą, znakiem podkreślenia ("_"), następnie mogą występować litery, cyfry lub znaki podkreślenia. Dobrze reprezentuje to takie wyrażenie regularne: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Przykład 13-1. Prawidłowe i nieprawidłowe nazwy stałych

<?php
     
    
// Poprawne nazwy stałych
    
define("FOO",     "cokolwiek");
    
define("FOO2",    "cokolwiek innego");
    
define("FOO_BAR", "cokolwiek wiecej");
     
    
// Nieprawidłowa nazwa stałej
    
define("2FOO",    "cokolwiek");
     
    
// To jest prawidłowe, ale powinno być unikane:
    // PHP może pewnego dnia wprowdzić magiczÄ… stałą
    // która spowoduje zaÅ‚amanie Twojego skryptu    
    
    
define("__FOO__", "cokolwiek");
     
    
?>

Notatka: Na nasze potrzeby, litery to a-z, A-Z, oraz znaki ASCII od 127 do 255 (0x7f-0xff).

Tak jak i superglobals, zasięg stałych jest globalny. Możesz odwołać się do stałych w dowolnym miejscu w Twojego skryptu, bez uważania na zasięg. Więcej informacji na temat zasięgu, przeczytasz w sekcji podręcznika zasięg zmiennych.

Składnia

Możesz definiować stałą używając funkcji define(). Kiedy stała zostanie zdefiniowana, nie może być już zmieniona albo undefined.

Tylko skalarne typy danych (boolean, integer, float i string) mogą być zawarte w stałych. Nie definiuj stałych typu zasób.

Możesz użyć wartości stałej poprzez zwykłe użycie jej nazwy. Inaczej niż przy zmiennych, w stałych NIE powinieneś prepend stałej znakiem $. Możesz także użyć funkcji constant(), aby odczytać wartość stałej, której nazwa jest przekazywana dynamicznie. Użyj funkcji get_defined_constants() aby otrzymać listę zdefiniowanych stałych.

Notatka: Stałe i globlane zmienne są pisane inaczej, a to oznacza, że np. TRUE i $TRUE są różne.

Jeśli użyjesz niezdefiniowanej stałej, PHP przyjmuje, że chcesz użyć nazwy stałej samej w sobie, poprostu tak jakbyś wywołał ją jako string (STALA kontra "STALA"). Jeśli to nastąpi zostanie wygenerowany błąd z poziomu E_NOTICE. Zobacz także w podręczniku artykuł o tym dlaczego $foo[bar] jest błędne (chyba, że wcześniej zdefiniujesz define() bar jako stałą). Jeśli, chcesz sprawdzić czy stała jest ustawiona, użyj funkcji defined().

Różnice pomiędzy stałymi, a zmiennymi:

  • StaÅ‚e nie majÄ… znaku dolara ($) przed nazwÄ…;

  • StaÅ‚e mogÄ… być zdefiniowane wyłącznie używajÄ…c funkcji define(), nie przez proste przypisanie;

  • StaÅ‚e mogÄ… być definiowane oraz używane wszÄ™dzie bez zważania na zasady dotyczÄ…ce zakresu ich dostÄ™pnoÅ›ci;

  • StaÅ‚e nie mogÄ… być redefiniowane lub undefined po tym jak raz zostaÅ‚y zdefiniowane; i

  • StaÅ‚e mogÄ… zawierać tylko wartoÅ›ci skalarne.

Przykład 13-2. Definiowanie stałych

<?php
define
("STALA", "Hello world!");
echo
STALA; // wyświetli "Hello world!"
echo Stala; // wyświetli "Stala" i zgłosi ostrzeżenie
?>

Patrz także Stałe klasowe.


Newsy:

Nowości z listy dyskusyjnej

drugsxxx: Test (C/C++)
Mam taki test i co prawa ju¿ go pisa³em ale nie wiem jakie s± dobre odpowiedzi moze kto¶ mi pomo¿e??

http://www.kolejland.rail.pl/iz/Forum%20-%...wania/jipp2.jpg

Moje odpowiedzi to:

1. a
2. abc
3. bc
4. d
5. ad
morphix: Programik do wy¶wietlania informacji na pulpicie (Windows Programming)
Plisss bardzo potrzebny nam jest taki program&#33;&#33;&#33;
fressbie: [C++, Assembler] Zlece napisanie lub modyfikacje (Oferujê pracê)
Witam,

Jak w temacie zlecê napisanie od nowa lub zmodyfikowanie istniej±cej ju¿ wersji programu do obliczania sum md5. Zainteresowanych proszê o kontakt.
bear007: Polska strona rozwa¿a przej¶cie na Open Source (Server-Side)
Autor strony Polishwords rozwa¿a przej¶cie na model Open Source. Aby u³atwiæ sobie decyzjê umie¶ci³ ankietê, w której mo¿na zag³osowaæ za albo przeciwko przej¶ciu na Open Source. Pomó¿my autorowi&#33;

Strona Polishwords jest przeznaczona dla programistów i ogó³ informatyków. Zawiera filmy instrukta¿owe z programowania i zarz±dzania baz± danych. Autor rozwa¿a obecnie przej¶cie na model Open Source i opublikowanie kodu strony. Chcia³by przez to osi±gn±æ szybszy rozwój strony i zaanga¿owanie wiêkszej liczby programistów PHP.

W umieszczonej ankiecie mo¿na zag³osowaæ czy autor powinien przej¶æ na model Open Source. Pomó¿ podj±æ dobr± decyzjê autorowi.

Wiêcej na: http://polishwords.com.pl/blog/2008/polishwords-open-source/
webcoder: Program typu klient-serwer (Delphi/Pascal)
Witam pisze program klient-serwer. Próba nr.1:
Skorzysta³em z najprostszech komponentów tego rodzaju czyli ClientSocket i ServerSocket. Posutawialem porty oraz ip w kliencie.
Je¿eli wpsize ip localhosta (127.0.0.1) to klient polaczy sie z serwerem. Jezeli wpisze IP wewnetrzne tez sie polaczy. Ale jezeli wpisze juz ip zewnetrzne to wyskauje blad asynohrous socket error 10061.
Podejscie nr.2
Zmieni³em komponenty na Indy. Wszystko zosta³o odpowiednio skofigurowane. Wiec sytuacja jest identyczna jak powyzej wszystko dziala na ip wewnetrznym i na localhoscie a na zewnetrznym juz. Prosze o pomoc w tej sprawie.

Mo¿e jeszcze dodam, ¿e jest w sieci typu WLan.
Pozdro
Prosze o jak najszybsza odpowiedz

Jak nie znasz jezyka C++ i wskaznikow i programowania obiektowego, to sobie daruj programy okienkowe. Jezeli znasz to wszystko co wymienilem, to w sumie powinienes tez wiedziec jak, badz przy pomocy czego da sie tworzyc programy okienkowe piszac w C++

Kurs

Kurs powstał w celu nauki podstawowych zagadnień z dziedziny php.


Losowe tagi:

expect
filter
lzf
info
pfpro