🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.python
Article #26734

Re: python vs php - potrzebne argumenty

#26734
From: Bart Ogryczak
Date: Fri, 27 Nov 2009 08:50
80 lines
4570 bytes
On Nov 26, 7:02 pm, Exe Very Cute <ksh...@poczta.Xonet.pl> wrote:
> Bart Ogryczak pisze:
>
>
>
> > On Nov 25, 9:15 pm, Exe Very Cute <ksh...@poczta.Xonet.pl> wrote:
> >> Bart Ogryczak pisze:
>
> >>> Jeśli $a == $b oraz $a i $ b są tego samego typu, to co można
> >>> powiedzieć o relacji między $array[$a] i $array[$b]?
> >> [8<]
>
> >>> <?php
> >>> $array = array('0' => 'a', '00' => 'b');
> >>> $a = '0'; $b = '00';
> >>> var_dump($a == $b);
> >>> var_dump($array[$a]);
> >>> var_dump($array[$b]);
> >>> ?>
> >>> bool(true)
> >>> string(1) "a"
> >>> string(1) "b"
> >> Masz błąd w kodzie. Powinno być:
>
> >> var_dump($a === $b);
> >> var_dump($array[$a]);
> >> var_dump($array[$b]);
>
> >> Poznaj PHP.
>
> > ROTFLMAO. A teraz może sprawdź w oficjalnej dokumentacji PHP, co wg
> > autorów znaczy ===.
>
> Dokładnie wiem, co znaczy.

$a == $b  	Equal  	TRUE if $a is equal to $b.
$a === $b 	Identical 	TRUE if $a is equal to $b, and they are of the
same type.


> > $a == $b oraz są tego samego typu (string). Czyli jeśli by wierzyć
> > dokumentacji PHP, to oznacza to, że $a === $b.
>
> Nie. Zupełnie nie rozumiesz o co w tym chodzi.
> Operator "==" oraz "===" są konsekwencją pierwotnych założeń czym PHP
> miało być. Wraz z rozwojem PHP powstał problem z rzutowaniem typów,
> który rozwiązano dodając "===".

No to jeszcze raz. "0" i "00" są tego samego typu. Zgodnie z
założeniami, dla zmiennych tego samego typu === powino dać ten sam
wynik co ==. Nie daje.

> Inaczej mówiąc NIEZGODNIE z tym co pisze w manualu ale w zgodzie z
> PRAKTYKĄ,

No i to jest największy ból PHP. Nie istnieje *język* PHP, istnieje
tylko implementacja.
Dla porównania, np. Python istnieje jako język, istniej jego
referencyjna implementacja (CPyhton), ale istnieją też alternatywne
implementacje *tego samego języka*. Np. Jython implementuje Pythona
2.5.1.

[... przykłady]
> Operator "===" jest więc po prostu operatorem równości w takim samym
> sensie w jakim operator "==" w językach silnie typowanych.

No właśnie też nie. Np. 1.0 === 1 daje false, w językach silnie
typowanych (Python/Java/C) 1.0 == 1 daje true.

> A że nazywa się "operatorem identyczności"? Jak zwał tak zwał.

Też bez sensu, bo identyczność oznacza "ten sam obiekt" w sensie "ta
sama instancja tej samej klasy".

> > Tyle, że PHP ma taki słabo udokumentowani "ficzer", że napisy które są
> > liczbami są automagicznie rzutowane na liczby. Prawda, że miłe.
>
> To nie jest słabo udokumentowane.

Twoim zdaniem jest dobrze udokumentowane?
Technical Details
Message-ID: <577d328e-2f53-4c17-b889-79630694757c@b2g2000yqi.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!b2g2000yqi.googlegroups.com!not-for-mail
References: <h83in7$rl3$1@inews.gazeta.pl> <h8447e$mg9$1@inews.gazeta.pl> <6a8e97cb-add7-450a-b7f2-f16ecc3cd0f6@y23g2000yqd.googlegroups.com> <6a691836-80db-4b66-bc41-f3c15e6782f7@v36g2000yqv.googlegroups.com> <6e26a02f-20fa-4a82-a722-9fbf78f0ef29@z41g2000yqz.googlegroups.com> <hcc9nt$eqr$1@news.lublin.pl> <f03c49b0-651b-4afa-ad73-db8dde63fdef@p35g2000yqh.googlegroups.com> <hccvvt$u0t$1@news.lublin.pl> <ac46bc62-a3ee-40a1-ac5d-860be3029272@z41g2000yqz.googlegroups.com> <hcd7ck$3a6$1@news.lublin.pl> <2f2d1c53-fa9a-40b1-be71-60f530a0be72@g23g2000yqh.googlegroups.com> <hce79t$m49$1@news.lublin.pl> <b793e5c7-90fc-4a41-ad54-31d2a67f62dc@b15g2000yqd.googlegroups.com> <hek38v$3rg$1@news.dialog.net.pl> <d54c15a1-3acc-499b-a8fb-14f3860cb674@j19g2000yqk.googlegroups.com> <hemfs7$ef8$1@news.dialog.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!b2g2000yqi.googlegroups.com!not-for-mail
From: Bart Ogryczak <b.ogryczak@gmail.com>
Newsgroups: pl.comp.lang.python
Subject: Re: python vs php - potrzebne argumenty
Date: Fri, 27 Nov 2009 00:50:18 -0800 (PST)
Organization: http://groups.google.com
Lines: 89
Message-ID: <577d328e-2f53-4c17-b889-79630694757c@b2g2000yqi.googlegroups.com>
References: <h83in7$rl3$1@inews.gazeta.pl> <h8447e$mg9$1@inews.gazeta.pl>  <6a8e97cb-add7-450a-b7f2-f16ecc3cd0f6@y23g2000yqd.googlegroups.com>  <6a691836-80db-4b66-bc41-f3c15e6782f7@v36g2000yqv.googlegroups.com>  <6e26a02f-20fa-4a82-a722-9fbf78f0ef29@z41g2000yqz.googlegroups.com>  <hcc9nt$eqr$1@news.lublin.pl> <f03c49b0-651b-4afa-ad73-db8dde63fdef@p35g2000yqh.googlegroups.com>  <hccvvt$u0t$1@news.lublin.pl> <ac46bc62-a3ee-40a1-ac5d-860be3029272@z41g2000yqz.googlegroups.com>  <hcd7ck$3a6$1@news.lublin.pl> <2f2d1c53-fa9a-40b1-be71-60f530a0be72@g23g2000yqh.googlegroups.com>  <hce79t$m49$1@news.lublin.pl> <b793e5c7-90fc-4a41-ad54-31d2a67f62dc@b15g2000yqd.googlegroups.com>  <hek38v$3rg$1@news.dialog.net.pl> <d54c15a1-3acc-499b-a8fb-14f3860cb674@j19g2000yqk.googlegroups.com>  <hemfs7$ef8$1@news.dialog.net.pl>
NNTP-Posting-Host: 94.100.112.225
Mime-Version: 1.0
X-Trace: posting.google.com 1259311818 3490 127.0.0.1 (27 Nov 2009 08:50:18 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Fri, 27 Nov 2009 08:50:18 +0000 (UTC)
Complaints-To: groups-abuse@google.com
Injection-Info: b2g2000yqi.googlegroups.com; posting-host=94.100.112.225;  posting-account=1kG_1AoAAADLEA3eucGvO2J-Uo4aPCW_
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5)  Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729) FirePHP/0.3,gzip(gfe),gzip(gfe)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit