int类型?

php中文网
发布: 2016-06-23 14:23:43
原创
1212人浏览过

<?     $x1=array(1=>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

<?          $x1=array(1=>"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 中的相同。
-------------------------------
希望不是打死也不愿看这楼

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号