现在可以这么写了:
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
建议支持强类型
|