Mac下php 5升级到php 7的步骤详解

yipeiwu_com7年前PHP代码库

前言

在MAC OS X 10.11中php的版本是5.5的,近来一年多里,看到了很多关于php7介绍,以为php7增加了很多新特性,也删除了原来很多的老特性,所以一直以来并没想去尝试使用php7,但今天去php官网上认真的看了一下php7的新特性,发现其实php7最大的提升在于性能,虽然在语法上增加了很多新特性,但不影响开发,并且能很好的兼容以前php的代码,在这里简要的说明一下php7的新特性,具体的说明请移步到官网去看。

移除的一些特性

     1.移除一些旧的扩展,被移迁移到了PECL(例如:mysql_*)

     2.移除SAPIs的支持

     3.<?<? language=“php”这样的标签被移除了

     4.16进制的字符串转换被废除了

//PHP5
"0x10" == "16"
 
//PHP7
"0x10" != "16"

     5.HTTP_RAW_POST_DATA移除了(可以使用php://input替代)

     6.静态函数里面不再支持通过一个不兼容的$this调用一个非静态的函数了

        $o = & new className{} ,不再支持这样的写法

     7.php.ini文件移除了#作为注释,统一用;去注释

新特性

  • ZEND引擎升级到Zend Engine 3,也就是所谓的PHP NG
  • 增加抽象语法树,使编译更加科学
  • 64位的INT支持
  • 统一的变量语法
  • 原声的TLS - 对扩展开发有意义
  • 一致性foreach循环的改进
  • 新增 <=>、**、?? 、\u{xxxx}操作符
  • 增加了返回类型的声明
  • 增加了标量类型的声明
  • 核心错误可以通过异常捕获了
  • 增加了上下文敏感的词法分析

说了这么多的废话,进入主题吧。

升级步骤如下:

1、升级php(在终端下执行)

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.1

在终端下直到出现”Syntax OK”就说明安装成功了。这个时候,用phpinfo()函数,你可以看到PHP Version 7.1.0alpha2

2、解决mysql链接的问题,由于php7抛弃了mysql的扩展函数(mysql_*),所有的链接mysql都要使用pdo,而php7的pdo_mysql.default_socket默认路径是/tmp/mysql.sock,而mysql.sock的路径在/private/var/mysql/mysql.sock,所以需要做一个软连接到tmp文件夹,在终端下执行

cd /tmp
sudo ln -s /private/var/mysql/mysql.sock mysql.sock

如果解决以上错误,php链接数据库时会提示:SQLSTATE[HY000] [2002] No such file or directory

3、重启apache和mysql,这样就可以啦!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对【宜配屋www.yipeiwu.com】的支持。

相关文章

PHP简单实现记录网站访问量功能示例

PHP简单实现记录网站访问量功能示例

本文实例讲述了PHP简单实现记录网站访问量功能。分享给大家供大家参考,具体如下: tongji/index.php文件: $file = dirname(__FILE__).'/to...

PHP+redis实现的限制抢购防止商品超发功能详解

本文实例讲述了PHP+redis实现的限制抢购防止商品超发功能。分享给大家供大家参考,具体如下: redis不仅仅是单纯的缓存,它还有一些特殊的功能,在一些特殊场景上很好用。red...

php实现子字符串位置相互对调互换的方法 原创

本文实例讲述了php实现子字符串位置相互对调互换的方法。分享给大家供大家参考,具体如下: <?php /*子字符串位置互换 */ $str1="Tom"; $str2...

php检查是否是ajax请求的方法

本文实例讲述了php检查是否是ajax请求的方法。分享给大家供大家参考。具体如下: 通过这段代码可以判断用户的请求是否来自AJAX XMLHttpRequest,以区别普通post,ge...

PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】

本文实例讲述了PHP开发之归档格式phar文件概念与用法。分享给大家供大家参考,具体如下: 一个php应用程序往往是由多个文件构成的,如果能把他们集中为一个文件来分发和运行是很方便的,这...