pytanko o apostrofy

pyt Q

Tu bym się nie zgodził, oba zapisy są identyczne, po prostu dają inne Szymon napisał:
php.net/manual/pl/language.types.array.php podrozdział "Dlaczego zapis $foo[bar] jest niepoprawny?"
vip;

odp A

Tu bym się nie zgodził, oba zapisy są identyczne, bzdura: zapis $_POST[jeden] jest poprawny o ile zdefiniuje się wcześniej stałą *jeden*, Gdyby to było poprawne bez definiowania tej stałej to PHP nie wyrzucałoby warninga. Lemat
Skladniowo sa identyczne: odwolanie do elementu tablicy.
Zapis $_POST[jeden] jest rowniez poprawny jesli nie zdefiniuje sie tej stalej (zreszta sam komunikat bledu ktory wystawia PHP nie odnosi sie przeciez do skladni). Niestety PHP kolejny raz sie samo "naprawia" zamiast przerwac dzialanie takigo skryptu. A ze stale mozna utworzyc jedynie przez define() wiec brak powinien byc bledem rownowaznym np. brakowi wolanej funkcji.
Z powazaniem,

odp A

Zapis $_POST[jeden] jest rowniez poprawny jesli nie zdefiniuje sie tej stalej (zreszta sam komunikat bledu ktory wystawia PHP nie odnosi sie przeciez do skladni). Niestety PHP kolejny raz sie samo "naprawia" zamiast przerwac dzialanie takigo skryptu. A ze stale mozna utworzyc jedynie przez define() wiec brak powinien byc bledem rownowaznym np. brakowi wolanej funkcji. nie jest poprawny. Nie jest bledny, ale nie jest tez poprawny. Zapewne w PHP6, ktory ma byc "odułatwiaczony" to "udogodnienie" zniknie, to znaczy bedzie błedem.

trzeba by byc konsekwentnym i polowe notice'ow zakwalifikowac jako ostzrezenia lub bledy. Tylko wtedy polowa sklepow przestalaby dzialac ;)

odp A

Lemat
Tu bym się nie zgodził, oba zapisy są identyczne, bzdura:
Skladniowo sa identyczne: odwolanie do elementu tablicy. zapis $_POST[jeden] jest poprawny o ile zdefiniuje się wcześniej stałą *jeden*, Gdyby to było poprawne bez definiowania tej stałej to PHP nie wyrzucałoby warninga.
Zapis $_POST[jeden] jest rowniez poprawny jesli nie zdefiniuje sie tej stalej (zreszta sam komunikat bledu ktory wystawia PHP nie odnosi sie przeciez do skladni). Niestety PHP kolejny raz sie samo "naprawia" zamiast przerwac dzialanie takigo skryptu. A ze stale mozna utworzyc jedynie przez define() wiec brak powinien byc bledem rownowaznym np. brakowi wolanej funkcji.
PHPEncoder.pl
. używając 2 różnych kluczy. Problemem jest tu automatyczna zmiana przez PHP nieistniejącej stałej w ciąg znaków, a nie użycie tego jako indeksu tablicy. Zresztą sprawdź, że podobnie można użyć nieistniejącej stałej na przykład robiąc echo.
Masz rację - sam zapis jest poprawny pod względem składni języka i nie powoduje błędów na etapie kompilacji. Błąd powstaje podczas próby wykonania.
A jeżeli chodzi o błędy podczas wykonywania to jest kwestia akademicka - czy kod pisany przy ustawieniach error_reporting = E_ALL & ~E_NOTICE i odpalony przy error_reporting = E_ALL (generując błędy) jest tak samo "poprawny" jak np. kod otwierający plik i uruchomiony w środowisku, gdzie tego pliku brak. Jest to kwesta ustalenia pewnych warunków brzegowych, przy których program będzie działał poprawnie oraz pewnych warunków brzegowych, przy których program wykona się błędnie. Kwestią dalszą jest oczywiście dalsza obsługa błędów.
PHP zostało stworzone z takimi założeniami aby poprawiać błędy programistów - aby programiści nie musieli pamiętać o wszystkim i mieli ułatwione zadanie. I jak widać był to strzał w 10 - rzadko które strony www są pisane na przykład w C.

Dodaj odpowiedź

Tytuł:

Mail: (w celu weryfikacji posta)