php是什么型语言

时间:2020-08-08 20:33:49 PHP 我要投稿

php是什么型语言

  PHP写的网站占所有网站的大概 80%了。那么你知道php是什么型语言了吗?PHP 是一门弱类型语言,跟yjbys小编一起来学习一下吧~

  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是什么类型语言05-11

php是什么11-03

PHP语言的优势11-11

PHP语言的简介11-10

如何学习PHP语言11-10

PHP语言就业前景11-10

php是什么格式11-03

php树型类实例代码11-19

新手如何学习PHP语言11-11