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