
现在可以这么写了:
function func(int $param_1,int $param_2){ return $param_1 + $param_2; } $result = func('23',23.44);//47 我觉得能够这样写就更好了:
int $param_1 = 1; string $param_2 = "hello world"; PHP7 Reference: https://github.com/tpunt/PHP7-Reference
安装小教程: http://www.blue7wings.com/post/91
我觉得还是强类型好,各位小伙伴如何认为?(:
1 cst4you Jun 24, 2015 你可以 $param_1 = (int)1; |
2 nightspirit Jun 24, 2015 因为这样的话对于之前的几个版本 变动太大了,虽然仅仅现在这样就已经搞的很不兼容了,但还是要考虑向下兼容问题。 |
3 ffffwh Jun 24, 2015 函数一般是一个人写的,类型自己清楚。 本地变量的类型推导是比较简单的,只要给出函数参数类型,就能写出type checker,从而提前保证类型安全。 当然函数参数的类型也能推导,这就比较复杂了(unification?)。 |
4 chaucerling Jun 24, 2015 动态语言就是变量没类型,值才有类型 |
5 jadecoder Jun 25, 2015 语言和用户互相影响。现在用PHP的人应该都习惯了弱类型,就没必要增加这个feature。喜欢强类型的人可以选择别的语言 |
6 cevincheung Jun 25, 2015 function e(string $param1,string $parma2):int echo e('1',2.33333333) |
7 banri Jun 25, 2015 via iPhone 这…JS都不敢大声说话了 |
8 flowfire Jun 25, 2015 php本来就是弱类型的语言,你非要人家转型。。。 |
9 kn007 Jun 25, 2015 为何一定要强类型 |
10 neilwong Jun 25, 2015 via iPhone 通过赋值转换类型是脚本语言的最大特色了吧,而且函数上规定类型也是可选的,只是方便了做类型校验。如果变量也可以声明类型,那就需要增加一种表示方法了,例如#a或者$$a这种,和原本的区分开,表示此变量类型无法转化 |
11 ruchee Jun 25, 2015 主要是考虑兼容性了,良好的向下兼容是PHP得以持续发展的秘密武器,反面例子可参考Python3与Perl6 |
12 blue7wings OP 应该是兼容的问题了,保证了php7和之前版本的兼容,而不是像python3和python2... |
13 demonchang Jun 25, 2015 - -! 顶一个 |
14 anyforever Jun 25, 2015 @jadecoder +1 |
15 mahone3297 Jun 25, 2015 支持强类型。。。 |
16 irgil Jun 25, 2015 支持强类型的 |
17 Actrace Jun 25, 2015 5.6也可以这么玩,而且可以指定一个类的类型, 比如 class A ,那么在调用的时候可以 function a(A $param) |
18 LaughingMeMe Jun 25, 2015 $intA,$strB,$arrC,$objD |
19 jsq2627 Jun 25, 2015 via iPhone 我记得函数参数的类型只能算得上“类型提示”,没有严格检查的。这种写法用的多的地方应该是依赖注入吧。 |
20 lincanbin Jun 25, 2015 为什么不用C++呢? |
21 notcome Jun 25, 2015 via iPhone 没必要,这些都可以 infer 出来。 此外,楼主很在意类型安全的话,可以来用用 Haskell,及其独有 TDD,我是说 Type Driven Development。除了 dependent type,Haskell 还有 refinement type checker,比如说在函数签名上可以直接标记接受所有大于零的整数,编译器就能给你检查出所有可能有问题的调用对处理用户输入特别有帮助哦。 |
23 fuxiaohei Jun 25, 2015 int $param_1 = 1; string $param_2 = "hello world"; 如果要这样写,你直接找个强类型语言用算了 |
24 zakokun Jun 25, 2015 形参中声明类型很早就支持了.我觉得主要是方便ide智能提示... 鸟哥不是说php7配置文件中支持开启变量强类型了么 |
25 aliang032 Jun 25, 2015 支持强类型+1 |
26 66beta Jun 25, 2015 楼主是要弄死java? |
27 bombless Jun 27, 2015 这个东西……它好像叫向量标注?(逃 |
28 fantiq Dec 10, 2016 建议支持强类型 |