网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
成为超级会员,使用一键签到
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月02日
漏签
0
天
php吧
关注:
281,033
贴子:
1,319,036
看贴
图片
吧主推荐
视频
游戏
20
回复贴,共
1
页
<<返回php吧
>0< 加载中...
[想水贴了]从变量类型开始告诉你PHP并不简单
只看楼主
收藏
回复
SeaDrip_Poplar
Pecl
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
1L不给看
SeaDrip_Poplar
Pecl
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
一直有个说法在编程界似乎很流行——PHP入门很简单,甚至到今天很多人推荐别人学编程的时候已经传达出一种“PHP很简单,随便学学就学会了”的错觉,甚至吧里也出现过很多“之前学XXX,学不会,想学个简单点的,就来学PHP了”的说法,让人哭笑不得,PHP真的简单吗?为了灌水,姑且开个贴,从变量类型开始,跟各位新手说一下,PHP一点也不简单
SeaDrip_Poplar
Pecl
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
PHP是弱类型语言,这是PHP从一开始就广受追捧的原因之一,因为程序猿们不再需要像写C一样,使用一个变量之前先去定义它了,可以直接使用,直接赋值,代码更简洁了,开发效率更高了这没错,但弱类型不等于没有类型,而这不仅不说明它简单,反而是它难的地方
SeaDrip_Poplar
Pecl
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
因为弱类型语言其实要求开发人员不仅对数据类型了然于胸,更要求开发过程中把每一个变量的实际类型装在脑子里
function writeUserSigToLog( $userSig ) {}
里面的代码你打算怎么写?
Log::write( $userSig );
Log::write( print_r( $userSig, true ) );
哪种方法是对的呢?明显取决于$userSig的类型,在不知道它的类型的时候甚至我们不得不
switch( gettype( $userSig ) ) {
case 'string':
case 'array':
case 'object':
}
不在乎类型?坑的是你自己
SeaDrip_Poplar
Pecl
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
以前类型的主要区别在于整数、字符串和数组,但随着PHP的发展、项目越来越复杂,当各种类实例参与到变量类型的大战中时,如果不了解类型和各自的特性麻烦就更大了
作为PHP7相较于PHP5非常明显的变动,变量类型限制在PHP7中占了很大的比重
比如你在写一个PHP框架,要求所有可访问控制器都继承于Base\Controller,以前的写法可能是
function createControllerWithName( $controllerName ) {
$controller = new $controllerName();
if( !is_subclass_of( $controller, '\\Base\\Controller') ) {
throw Exception( xxxxxx );
}
return $controller;
}
可现在在PHP7里,可以用一种更简洁的写法
function createControllerWithName( $controllerName ) : \Base\Controller {
return new $controllerName();
}
只要返回值不符合要求(即不是\Base\Controller或其子类)就会直接报错,而且这样写之后有的编辑器就会知道返回值是\Base\Controller的实例,并且在自动补全的方法列表中列出\Base\Controller中可用的方法,以前的写法就很少能得到这样的支持
SeaDrip_Poplar
Pecl
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
一时也不好展开讲太多,只是用一个很简单的切入点来给新人们一个概念:所有跟你说PHP很简单的人都是在坑你,想学好PHP,要提前作的准备很多
弱类型不等于没类型,类型在代码中参与得越少,在程序猿脑子里吃掉的脑细胞就必然越多,越是弱类型语言,要求的程序猿开发经验就越多,这也是为什么现在PHP程序猿就业时发现对项目经验的要求远高于其它强类型语言
比如JAVA,一个团队如果有一个强大的JAVA架构师,他可以把每个方法的参数列表和返回值类型都列给程序猿,开发就只需要码代码就行了,而PHP(曾经)不行,不得不要求每一个开发人员都有足够的水平,好在PHP7以后PHP也可以这么玩了
SeaDrip_Poplar
Pecl
15
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
最后的最后,我可能写得比较乱,但懂的自然懂,我也不打算过分展开详说了,因为水贴的话这些字数应该够了
The End
爱写代码的鱼
面向对象
10
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
水一波
草薙京404
路过酱油
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
毕竟php是世界上最好的语言!
贴吧用户_09C33SA
路过酱油
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
山野土蜂蜜
路过酱油
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
咋感觉你们一个个写个php都牛逼的不能行了呢
九樾珉
路过酱油
1
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
带佬。
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示