Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Brak typowania - największe przekleństwo PHP

27 views
Skip to first unread message

yamma

unread,
Apr 12, 2012, 11:10:08 AM4/12/12
to
Jak zmusić PHP żeby wartości zmiennych traktował jako "stringi" a nie robił
tego wedle własnego uznania? Chodzi o coś takiego:
$x = "23333";
$y = "000023333";
i chodzi o to, żeby nie traktował tych dwóch zmiennych jako identycznych.
yamma

Piotr Kęplicz

unread,
Apr 12, 2012, 11:17:30 AM4/12/12
to
yamma:
Uzywać odpowiednich operatorów/funkcji:
===
!==
strcmp()

.pk.

yamma

unread,
Apr 12, 2012, 11:53:37 AM4/12/12
to
Powyższe się wypieprza i nawet nie chcę mi się sprawdzać dlaczego (ja,
generalnie jestem dotnetowcem a jestem chwilowo zmuszony grzebać się w tym
gównie).

> strcmp()

A to powyższe działa (choć nie do końca tak jak chcę ale sobie poradziłem).
Dzięki!
yamma

Konrad Karpieszuk

unread,
Apr 12, 2012, 4:45:15 PM4/12/12
to
Dnia Thu, 12 Apr 2012 17:53:37 +0200, yamma napisał(a):

> Powyższe się wypieprza i nawet nie chcę mi się sprawdzać dlaczego

<?php

$x = "23333";
$y = "000023333";

if ($x === $y) echo "rowne";
else echo "nierowne";

efekt działania powyzszego mozesz zobaczyc tutaj: http://muzungu.pl/
info.php



--
pozdrawiam, Konrad Karpieszuk
http://tradematik.pl - wtyczka do WordPress
do tworzenia sklepów internetowych

NotBear

unread,
Apr 13, 2012, 3:28:46 AM4/13/12
to
W dniu 2012-04-12 17:53, yamma pisze:
> Powyższe się wypieprza i nawet nie chcę mi się sprawdzać dlaczego

Masz racje, to nie jest godne Prawdziwego Programisty.


> (ja, generalnie jestem dotnetowcem[ciach]

Jestem pod wrazeniem.


--
NotBear

yamma

unread,
Apr 14, 2012, 5:42:40 AM4/14/12
to
Konrad Karpieszuk wrote:
> Dnia Thu, 12 Apr 2012 17:53:37 +0200, yamma napisał(a):
>
>> Powyższe się wypieprza i nawet nie chcę mi się sprawdzać dlaczego
>
> <?php
>
> $x = "23333";
> $y = "000023333";
>
> if ($x === $y) echo "rowne";
> else echo "nierowne";

Bardzo możliwe, tylko to, co napisałem, to dość duże uproszczenie mojego
problemu. Funkcjonalność, którą obrabiam polega na porównywaniu wartości z
formularza (na stronie) z wartościami znajdującymi się w tabeli. Chodzi
konkretnie o namierzenie zmian jakie uzytkownik dokonuje w danym rekordzie.
W dużym uproszczeniu porównuję dwie tabele (jedna z nich, to _POST a druga,
to rekord z tabeli) próbując wyłapać zmiany i bardziej interesuje mnie
operator "!==". No i na takim porównywaniu poszczególnych elementów tablic
aplikacja się wypieprza. Nie mam sensownego debugera (istnieje w ogóle jakiś
do PHPa?) i trudno mi prześledzić co i gdzie się wypieprza.
Ale tak jak już pisałem wcześniej funkcja strcmp(), to jest to o co mi
chodzi.
yamma

yamma

unread,
Apr 14, 2012, 5:44:36 AM4/14/12
to
Sorry ale ja naprawdę nie mam ochoty na flejmy (swoje zdanie o PHP mam i
raczej go nie zmienię), więc będziesz musiał pozostać nieutulony w żalu.
yamma

Borys Pogoreło

unread,
Apr 14, 2012, 6:26:44 AM4/14/12
to
Dnia Thu, 12 Apr 2012 20:45:15 +0000 (UTC), Konrad Karpieszuk napisał(a):

> $x = "23333";
> $y = "000023333";
>
> if ($x === $y) echo "rowne";
> else echo "nierowne";

To za mało, zadziała poprawnie dla powyższego przypadku, ale dane mogą
pochodzić z różnych źródeł i można się zdziwić porównując z zerem (sam to
ćwiczyłeś na GL ;) Dopiero to zapewni bezpieczne porównanie:

if ((string) $x === (string) $y) { }

(oczywiście rzutowanie można zrobić wcześniej)

--
Borys Pogoreło
borys(#)leszno,edu,pl

Borys Pogoreło

unread,
Apr 14, 2012, 6:27:50 AM4/14/12
to
Dnia Sat, 14 Apr 2012 11:42:40 +0200, yamma napisał(a):

> to rekord z tabeli) próbując wyłapać zmiany i bardziej interesuje mnie
> operator "!==". No i na takim porównywaniu poszczególnych elementów tablic
> aplikacja się wypieprza.

A jakieś konkrety?

--
Borys Pogoreło
borys(#)leszno,edu,pl

yamma

unread,
Apr 14, 2012, 5:49:15 PM4/14/12
to
Borys Pogoreło wrote:
> Dnia Sat, 14 Apr 2012 11:42:40 +0200, yamma napisał(a):
>
>> to rekord z tabeli) próbując wyłapać zmiany i bardziej interesuje
>> mnie operator "!==". No i na takim porównywaniu poszczególnych
>> elementów tablic aplikacja się wypieprza.
>
> A jakieś konkrety?

Konkretów ci nie podam, bo dane z serwera pobieram w formacie JSONa i jeśli
błąd wykracza poza ramy try catch, to nie jestem w stanie ściągnąć
komunikatu błędu (po prostu zamiast wygenerowania obiektu JSONa serwer
wypluwa komunikat błędu, którego klient nie jest w stanie przetworzyć, bo
czeka na obiekt JSONa). A nie chce mi się przepisywać tego kawałka tak, żeby
wypluć to do przeglądarki (plik logów z pewnych względów odpada).
yamma

NotBear

unread,
Apr 15, 2012, 8:21:36 AM4/15/12
to
> W dniu 2012-04-12 17:53, yamma pisze:
>> [...] nie chcę mi się

... z Toba gadac.


--
NotBear

yamma

unread,
Apr 15, 2012, 9:39:42 AM4/15/12
to
NotBear wrote:
>> W dniu 2012-04-12 17:53, yamma pisze:
>>> [...] nie chcę mi się
>
> ... z Toba gadac.

Jedno kontrolne pytanie: pracowałeś z ASP.NET MVC i z np.
EntityFrameworkiem? Jeśli nie miałeś tego nigdy "w ręku", to dyskusja z tobą
jest bezcelowa i szkoda na to czasu.
yamma

KB

unread,
Apr 15, 2012, 4:32:59 PM4/15/12
to
On 2012-04-15 15:39, yamma wrote:
> Jedno kontrolne pytanie: pracowałeś z ASP.NET MVC i z np.
> EntityFrameworkiem? Jeśli nie miałeś tego nigdy "w ręku", to dyskusja z
> tobą jest bezcelowa i szkoda na to czasu.

A kogo to na tej grupie?

Paweł Łaski

unread,
Apr 23, 2012, 12:09:07 PM4/23/12
to
Ale artysta, jak nie chcesz robić to nie rób, a jak pytasz się to nie usprawiedliwiaj swojej głupoty lenistwem.

the_foe

unread,
May 5, 2012, 5:45:13 PM5/5/12
to
W dniu 2012-04-12 17:10, yamma pisze:
php ma typowanie; nie narzuca obowiazku deklaracji typow.
http://www.php.net/manual/pl/language.types.intro.php

--
the_foe
0 new messages