int類型?

來源:互聯網
上載者:User
111,2=>22111,3=>3333);     $y1=in_array(111,$x1);     echo $y1;     echo "\r\n";          $x2=array(1=>111,2=>2211,3=>3333);     $y2=in_array('111',$x2);     echo $y2;     echo "\r\n";          $x3=array(1=>111,2=>2211,3=>3333);     $y3=in_array("111",$x3);     echo $y3;     echo "\r\n";    ?>


問題:
上面PHP程式,函數第1個參數是:int類型,它可以用以下3種方式表示:
1)111
2)'111'
3)"111"

這樣都對,為什嗎?


回複討論(解決方案)

因為你沒有給in_array指定第三個參數,因此只比較值是否相等。而 111 ,'111' ,"111" 三個的值是相等的。

首先2)和3)沒區別
其次你要看手冊,in_array還有第三個參數,不使用預設false
你加上第三個參數 true 試試?

因為你沒有給in_array指定第三個參數,因此只比較值是否相等。而 111 ,'111' ,"111" 三個的值是相等的。

先不用考慮第3個參數。
PHP文法,int類型,可以用這三種方式表示?

不可以
111 表示int
'111' ,"111" 表示字串

不可以
111 表示int
'111' ,"111" 表示字串

為什麼程式是對?

1 樓已經說過了,還是建議你去看下手冊。
http://php.net/manual/zh/function.in-array.php

"a",2=>"b",3=>"c");     $y1=in_array(a,$x1);         //這行有語法錯誤!                                                   //PHP Notice:  Use of undefined constant a - assumed 'a' in /var/www/b.php on line 4     echo $y1;     echo "\r\n";          $x2=array(1=>"a",2=>"b",3=>"c");     $y2=in_array('a',$x2);     echo $y2;     echo "\r\n";          $x3=array(1=>"a",2=>"b",3=>"c");     $y3=in_array("a",$x3);     echo $y3;     echo "\r\n";     ?>


函數in_array(),第1個參數是字元型。下面三種標記法:
1)a //PHP文法錯。
2)'a'
3)"a"

你上個文章已經問過了吧,好好去看下。

1 樓已經說過了,還是建議你去看下手冊。
http://php.net/manual/zh/function.in-array.php

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )


函數in_array(),第1個參數,其類型是:mixed.
也就是:它的類型不確定,但是,它是PHP類型的其中一種!

int整型:
1)111
2)'111'
3)"111"
這樣寫法,編譯都沒出錯!
也就是說,它們都是int整型了?


因為你沒有給in_array指定第三個參數,因此只比較值是否相等。而 111 ,'111' ,"111" 三個的值是相等的。

先不用考慮第3個參數。
PHP文法,int類型,可以用這三種方式表示?
php 是弱類型語言,會根據上下文自動變換資料類型

echo '111' + 2; //輸出 113
echo 111 . 2; //輸出 1112

對於 #8,當取消強制類型檢查時
error_reporting(E_ALL ^ E_NOTICE);
$x1=array(1=>"a",2=>"b",3=>"c");
$y1=in_array(a,$x1);
並不會報錯!

你上個文章已經問過了吧,好好去看下。

這個貼,問的是PHP類型。

與函數in_array()第3個參數,沒任何關係!



因為你沒有給in_array指定第三個參數,因此只比較值是否相等。而 111 ,'111' ,"111" 三個的值是相等的。

先不用考慮第3個參數。
PHP文法,int類型,可以用這三種方式表示?
php 是弱類型語言,會根據上下文自動變換資料類型

echo '111' + 2; //輸出 113
echo 111 . 2; //輸出 1112

對於 #8,當取消強制類型檢查時
error_reporting(E_ALL ^ E_NOTICE);
$x1=array(1=>"a",2=>"b",3=>"c");
$y1=in_array(a,$x1);
並不會報錯!

PHP這種弱類型語言。
不知它弱到什麼程度,有多少種可能?
如:int整型,就有3種寫法。


不像C語言,1 是1,2是2,類型都嚴格正常化!

弱是相對強的
C語言是強型別語言

所有的指令碼語言都是弱類型語言,因為他們都不需要有編譯過程。不需要預先分配儲存空間

感覺LZ是打死也不願看手冊的,那我就摘抄一下吧
-----------------------------
bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )
在 haystack 中搜尋 needle,如果沒有設定 strict 則使用寬鬆的比較。
……
strict
如果第三個參數 strict 的值為 TRUE 則 in_array() 函數還會檢查 needle 的 類型是否和 haystack 中的相同。
-------------------------------
希望不是打死也不願看這樓

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.