アカウント名:
パスワード:
正直、PHPを知らない人間には理解できないとしか言いようが無い
'9223372036854775807' == '9223372036854775808' は文字列の比較だから、当然true'9999999999999999999.0' == '9999999999999999999.1' も文字列の比較だから、当然false9999999999999999999.0 == 9999999999999999999.1 は浮動小数点数の比較だから、言語仕様上どのような値を返すことになっているのか注意しろ(あるいは使うな)
という他のプログラミング言語の常識は通用しないのか......................PHPの==は両辺を適当に【型キャストしてから】比較するような演算子~というのも良く分からない(なんでわざわざキャストする仕様なの?)
JavaScript でも同じような型変換が行われるような…
> 複数いてたぶん同じ人じゃないかな。
JavaScriptをPHPみたいなクソ言語と一緒にしないでくれ
まぁJavascriptも十分糞だけどな。
インタプリタのスクリプト言語なんかは些細なことで(?)ランタイムエラーが発生してアボートしないように、気をきかせ適当な型キャストしてるんだろうとは思うが、やっぱり気持ち悪い
>PHPの==は両辺を適当に【型キャストしてから】比較するような演算子~というのも良く分からない(なんでわざわざキャストする仕様なの?)
a=1;b=""; (整数の1と空文字列)として
a == 1a == "1"a != "abc"a == "1abcde"b == ""b == nullb == 0なんかでもtrueが帰るんだっけ?まあなんかそういう感じの奴。
使うのは a == "1"くらいまでにしとくのが無難。だから詳細は覚える気ないし、上のも間違ってる可能性大。#「 a == "one", b == "虚無" でもtrueが帰るんだよ!HAHAHAHAHA!」#もちろん冗談ですよ。 …… 今のところは。
そういえば今回の仕様変更は、比較には影響しないのかな。'9223372036854775807' < '9223372036854775808'はどうなる?
>'9223372036854775807' == '9223372036854775808' は文字列の比較だから、当然true
あれ?おかしいな。疲れてるのかな。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stay hungry, Stay foolish. -- Steven Paul Jobs
PHPを知らない人間には理解できない (スコア:0)
正直、PHPを知らない人間には理解できないとしか言いようが無い
'9223372036854775807' == '9223372036854775808' は文字列の比較だから、当然true
'9999999999999999999.0' == '9999999999999999999.1' も文字列の比較だから、当然false
9999999999999999999.0 == 9999999999999999999.1 は浮動小数点数の比較だから、言語仕様上どのような値を返すことになっているのか注意しろ(あるいは使うな)
という他のプログラミング言語の常識は通用しないのか......................
PHPの==は両辺を適当に【型キャストしてから】比較するような演算子~というのも良く分からない(なんでわざわざキャストする仕様なの?)
Re: (スコア:0)
JavaScript でも同じような型変換が行われるような…
Re: (スコア:0)
> '9223372036854775807' == '9223372036854775808'
< false
> '9999999999999999999.0' == '9999999999999999999.1'
< false
型変換するのは左右の型が違う時。
> '9223372036854775807' == 9223372036854775808
< true
> '9999999999999999999.0' == 9999999999999999999.1
< true
# 「JavaScriptでも~」って言う人が複数いて不安になった。
Re:PHPを知らない人間には理解できない (スコア:1)
> 複数いて
たぶん同じ人じゃないかな。
Re: (スコア:0)
JavaScriptをPHPみたいなクソ言語と一緒にしないでくれ
Re: (スコア:0)
まぁJavascriptも十分糞だけどな。
Re: (スコア:0)
インタプリタのスクリプト言語なんかは些細なことで(?)ランタイムエラーが発生してアボートしないように、気をきかせ適当な型キャストしてるんだろうとは思うが、やっぱり気持ち悪い
Re: (スコア:0)
>PHPの==は両辺を適当に【型キャストしてから】比較するような演算子~というのも良く分からない(なんでわざわざキャストする仕様なの?)
a=1;b=""; (整数の1と空文字列)として
a == 1
a == "1"
a != "abc"
a == "1abcde"
b == ""
b == null
b == 0
なんかでもtrueが帰るんだっけ?
まあなんかそういう感じの奴。
使うのは a == "1"くらいまでにしとくのが無難。
だから詳細は覚える気ないし、上のも間違ってる可能性大。
#「 a == "one", b == "虚無" でもtrueが帰るんだよ!HAHAHAHAHA!」
#もちろん冗談ですよ。 …… 今のところは。
そういえば今回の仕様変更は、比較には影響しないのかな。
'9223372036854775807' < '9223372036854775808'
はどうなる?
Re: (スコア:0)
>'9223372036854775807' == '9223372036854775808' は文字列の比較だから、当然true
あれ?おかしいな。疲れてるのかな。