為什麼PHP中echo00000000000返回的值為1?0與0的字串居然相等

2021-04-21 11:28:21 字數 820 閱讀 3886

1樓:凡面郭達子

復對於比較運算子「==」,制如果比較一bai個數字和字串du或者比較涉及到數字內容的字元zhi串,則dao字串會被轉換為數值並且比較按照數值來進行。

所以,如下字串中,轉換為數值之後相等而輸出1。

<?php

echo ("0"=="000000");//1

echo ("00000"=="000000");//1

echo ("12345"=="012345"); //1

echo ("10"=="1e1"); //1

?>

而echo ("12345n"=="012345n");

由於比較的表示式中兩邊都含有字母,所以均當做字串來處理而沒有進行轉換,所以沒有輸出1。

另外,當其中的涉及到數字內容的字串要進行轉換的時候,其開始的值決定轉換後的值,比如:

echo (12345=="012345 我和我的小夥伴們都驚呆了。"); //1

echo (12345=="01234n5"); // 不會輸出1

echo ("12345"=="012345 我和小夥伴們都驚呆了n"); // 這樣也不會輸出1

2樓:匿名使用者

的確是這樣的。如果兩個字串都是純數字,就當做是兩個數字在比較。

如果至少一個字串為非純數字,會進行字串比較。

如果一定要比較字串,請使用strcmp()函式,不要直接比較。

望採納!

3樓:偉少love靜靜

這個不是bug,是php型別比較規則規定的,你看看php型別比較就明白了

php中echo的使用方法

呵呵。這是因為整數型的值。可以直接輸出。像數字這類都可以不加引號直接輸出。輸出變數也可以不用加任何的引號。直接 echo a 即可要輸出字元,就一定要加引號了。比如 echo 你好 關於單引號和雙引號,區別只有一個,單引號裡的變數和運算子不會被解釋。原樣輸出。而雙引號裡的會解釋為相應的內容。例如 a...

請問php裡的echo是什麼意思

php裡的echo是一種輸出字串的語法或函式,當後面直接跟隨空格和字串時是語法,如 echo php 函式使用的方式例如 echo php php的echo 函式用於輸出一個或多個字串。echo 這種方法也可以,使用echo不加括號時,echo是一種語法,不是函式。echo無返回值,而同樣可以用於列...

在php中,在PHP中「 」是什麼意思

or 的意思,或者 if a 1 a 0 a 1或者a 0時列印ok 邏輯運算子,邏輯或,比如 a b 當a b有一個真時,a b 就真,只有a b均為假時,才為假 邏輯或運算,二元操作符 x y當x,y至少有一個為真時,表示式x y的值為1,反之為0 邏輯運算 bai符 表示 或 if a b t...