PHP概述

编译型语言&解释型语言

  • 编译型语言:编译型语言写的程序在被执行前,需要有一个专门的编译过程,把程序编译成机器语言的文件,比如exe文件。如果以后要运行,直接使用编译的结果便可,而不用再重新编译,因此一般来说执行效率比解释型语言要高。
  • 解释型语言:不用编译,需要专门的解释器来解释执行,每条语句都是执行时才翻译,因此程序每执行一次就需要翻译一次,效率较低。

弱类型语言

  • 弱类型语言是指在使用变量时,不需要做任何类型的声明,该语言即可根据变量的值自动判断变量类型。
  • 这也是PHP及其方便的一点,不过在某些特殊情况下,还是需要严格遵守变量类型的定义规范(比如商品价格)。

简介

  • PHP(Hypertext Preprocessor,超文本预处理器,追溯到最初应该叫Personal Home Page,个人主页 )是一种脚本语言,从本质上来说,也就是解释型语言,不需要编译,但需要有相应的脚本引擎来解释执行。
  • PHP是一种运行于后端服务器的脚本语言,开源且免费。可镶嵌于HTML页面中解析共存,动态创建输出内容,是构建网页最为省时简单的解析性脚本语言。自版本7发布之后,PHP的应用变得更加广泛。

各个版本

  • PHP4引入面向对象等等等
  • PHP5极大提高面向对象能力等等等。PHP 5.6 将会在 2018 停止安全更新
  • PHP 7.1 非常新,相较于 5.x 版本增加了强大的 新特性。PHP 引擎大部分被重写,PHP 的运行速度已经远远超越过去。

PHP运行原理

当用户代码输入给PHP内核去执行的时候, PHP内核会对PHP代码进行词法分析和语法分析, 词法分析是把PHP代码分割成一个个的“单元”(TOKEN), 语法分析则将这些“单元”转化为Zend Engine可执行的操作。 然后PHP内部的Zend Engine对这些操作进行顺次的执行。 Zend Engine是PHP内核的核心部分,负责最终操作的执行和结果的返回, 可以理解成为PHP内核中的“发动机”。


原理

关于PHP与JAVA的看法

JAVA有多种成熟的架构供选择,例如SSH框架。虽然PHP也有众多框架,但由于PHP的语言特性更偏向面向过程,同时框架又和面向对象编程思想有很强的联系,因此PHP在框架这条路上与JAVA相去甚远。简单的系统设计PHP完全可以胜任,而复杂的系统设计,意味着后端代码必须模块化,要高内聚/低耦合以及代码重用,JAVA更适合这样的场景。
  这里扯一下PHP与面向对象不那么友好,比如不支持方法重载、操作符重载、多重继承(有人说通过递归实现,会扛不住,这里Mark一下,记住这个点)。不过PHP引入了trait,与多重继承相似的一种代码复用机制。

trait

Trait 和 Class 相似,但仅仅旨在用细粒度和一致的方式来组合功能。 无法通过 trait 自身来实例化。它为传统继承增加了水平特性的组合;也就是说,应用的几个 Class 之间不需要继承。
  从基类继承的成员会被 trait 插入的成员所覆盖。优先顺序是来自当前类的成员覆盖了 trait 的方法,而 trait 则覆盖了被继承的方法。

<?php
trait HelloWorld {
    public function sayHello() {
        echo 'Hello World!';
    }
}

class TheWorldIsNotEnough {
    use HelloWorld;
    public function sayHello() {
        echo 'Hello Universe!';
    }
}

$o = new TheWorldIsNotEnough();
$o->sayHello();
?>

output:
Hello Universe!

近期想回顾一下基础,发现自己对很多东西没有了解透彻,查看他人的博客,然后瞎写了上面一点东西,如有错漏,欢迎指出。
参考:http://www.jianshu.com/p/45a99aedc7ab
http://www.epnz.com/?p=art&id=914
http://www.jianshu.com/p/90257a757884

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • window下安装方法Appserv 官网http://www.appservnetwork.com安装成功后,到...
    深沉的简单阅读 663评论 0 0
  • 转自陈明乾的博客,可能有一定更新。 转原文声明:原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、...
    C86guli阅读 4,741评论 6 72
  • 周六,按平常早起给女儿准备了早餐,因昨天睡得晚,看着点叫她起床了,还好没有赖床马上洗漱就吃饭,准备书去辅导班。今...
    金慧恩妈妈阅读 180评论 0 0
  • 笔耕不辍之任何年龄都不晚 做健康直播三个多月了,看到在直播时很多朋友问的问题很有意思。其中有人会问:我五十多了,六...
    理疗瑜伽邵阅读 256评论 0 0
  • “我累了,做回朋友吧,叶子。”冬日暖阳,站在窗前,在听了近九分钟沉默后,电话那头传来嘟嘟声。窗外,原来停止不前的车...
    木楚阅读 731评论 5 8