Article View: pl.comp.lang.python
Article #26734Re: python vs php - potrzebne argumenty
From: Bart Ogryczak
Date: Fri, 27 Nov 2009 08:50
Date: Fri, 27 Nov 2009 08:50
80 lines
4570 bytes
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-mailReferences:
<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