We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

bool(false)


Lewyx
02-03-2014, 19:09
Tak :-)
na jednym pokazuje wartość true, a na innym false

mrfx
02-03-2014, 18:54
Tzn. na jednym v5.4.x działa dobrze, a na innym v5.4.x działa źle?

Lewyx
02-03-2014, 17:08
Ale ale... ta sytuacja akurat dotyczy ver 5.4, bo na takiej wersji osadzona jest strona i programista zarzucił mi, że wina leży po stronie konfiguracji serwera, stąd moje pytanie, czy jest to zależne od konfiguracji na serwerze, w tym php.ini.

mrfx
02-03-2014, 16:44
No właśnie tak to już jest z PHP. Mimo, że ma już 20 lat, to wciąż jest niedojrzałe i z wersji na wersję zdarzają się zmiany powodujące, że stare programy przestają działać. Umieszczenie w dokumentacji tego samego jako constant i jako keyword, które są opisane w pierwszym przypadku jako "uppercase", a w drugim jako "case-insensitive" jest skutkiem tego, że intencją autorów PHP nie było stworzenie języka programowania, a jedynie zestawu skryptów ułatwiających tworzenie stron www. Później zaczęto dodawać kolejne funkcjonalności, które nie zawsze okazały się prawidłowe, stąd liczne niekonsekwencje, zmiany i niekompatybilności pomiędzy wersjami i ogólny bałagan. Tym niemniej, skoro w dokumentacji jest wyraźnie napisane, że powyższa składnia jest prawidłowa dopiero od wersji 5.3 to nie powinno się jej używać w wersji 5.2.x.

e1024342
02-03-2014, 15:34
Na stronie http://us2.php.net/manual/en/language.types.boolean.php jest "To specify a boolean literal, use the keywords TRUE or FALSE. Both are case-insensitive."

mrfx
02-03-2014, 14:59
Cytat Napisał e1024342
mrfx o czym ty w ogóle piszesz ? tam żadnych stałych nie ma....
TRUE / FALSE to są stałe predefiniowane:
http://us2.php.net/manual/en/reserved.constants.php

e1024342
02-03-2014, 14:47
mrfx o czym ty w ogóle piszesz ? tam żadnych stałych nie ma....

mrfx
02-03-2014, 13:50
Wg dokumentacji w PHP 5.2 nie powinno stosować się zapisu jak powyżej. Ponadto stałe powinny być zapisywane z wielkich liter:
"A constant is case-sensitive by default. By convention, constant identifiers are always uppercase."

Lewyx
02-03-2014, 12:45
Jest 5.2.17, 5.4.4 i 5.4.25
Kod:

działa dobrze, czyli pokazuje true, więc problem leży w zmiennych

mrfx
02-03-2014, 12:22
"Since PHP 5.3, it is possible to leave out the middle part of the ternary operator. Expression expr1 ?: expr3 returns expr1 if expr1 evaluates to TRUE, and expr3 otherwise"

Czy na obu serwerach jest PHP>=5.3?

Lewyx
01-03-2014, 21:47
Cześć,
chciałbym wiedzieć, od czego zależy, że kod:
Kod:

na jednym serwerze pokazuje wartość true, a na drugim serwerze wartość false.
Czy jest za to odpowiedzialna jakaś zmienna w php.ini?

Pozdrawiam