PHP 是一门弱范例言语
我们注意到,没必要向 PHP 声明该变量的数据范例。
PHP 会依据变量的值,自动把变量转换为正确的数据范例。在强范例的编程言语中,我们必需在运用变量前先声明(定义)变量的范例和称号。
1. 先定义一些基本观点
Program Errors
trapped errors。致使顺序停止实行,如除0,Java中数组越界接见untrapped errors。 失足后继承实行,但能够涌现恣意行动。如C里的缓冲区溢出、Jump到毛病地点
Forbidden Behaviours
言语设计时,能够定义一组forbidden behaviors. 它必需包括一切untrapped errors, 但能够包括trapped errors.
Well behaved、ill behaved
well behaved: 假如顺序实行不能够涌现forbidden behaviors, 则为well behaved。
ill behaved: 否则为ill behaved...
2. 有了上面的观点,再议论强、弱范例,静态、动态范例
强、弱范例
强范例strongly typed: 假如一种言语的一切顺序都是well behaved——即不能够涌现forbidden behaviors,则该言语为strongly typed。
弱范例weakly typed: 否则为weakly typed。比方C言语的缓冲区溢出,属于trapped errors,即属于forbidden behaviors..故C是弱范例前面的人也说了,弱范例言语,范例搜检更不严厉,如倾向于容忍隐式范例转换。比如说C言语的int能够变成double。 如许的结果是:轻易发生forbidden behaviours,所以是弱范例的
动态、静态范例
静态范例 statically: 假如在编译时谢绝ill behaved顺序,则是statically typed;
动态范例dynamiclly: 假如在运行时谢绝ill behaviors, 则是dynamiclly typed。
3. 误区
人人以为C言语要写int a, int b之类的,Python不必写(能够直接写a, b),所以C是静态,Python是动态。这么明白是不够正确的。比如Ocaml是静态范例的,然则也能够不必明确地写出来。Ocaml是静态隐式范例
静态范例能够分为两种:
假如范例是言语语法的一部分,在是explicitly typed显式范例;假如范例经由过程编译时推导,是implicity typed隐式范例, 比方ML和Haskell
4.下面是些例子
无范例: 汇编
弱范例、静态范例 : C/C++
弱范例、动态范例搜检: Perl/PHP
强范例、静态范例搜检 :Java/C#
强范例、动态范例搜检 :Python, Scheme
静态显式范例 :Java/C
静态隐式范例 :Ocaml, Haskell
以上内容仅供参考!
引荐教程:PHP视频教程
以上就是php是强范例言语吗的细致内容,更多请关注ki4网别的相干文章!