上手并过渡到PHP7 取代fatal error的engine exceptions 泊学原文链接泊学代码秀视频 自从PHP 4以来,PHP的错误处理几乎就是一成不变的.只不过在PHP 5.0里添加了E_STRICT,在PHP 5.2里添加了E_RECOVERABLE_ERROR,在PHP 5.3里,添加了E_DPRECATED这几种Error level.尽管PHP 5中加入了Exception,但PHP中只有很少的模块使用了这个机制(例如:pdo和spl).在PHP 7中,这个尴尬的现状,终…
PHP7 up and running 泊学实操视频泊学原文链接PHP7, Xdebug and Homestead 在经历了13个RC版本之后,PHP 7终于来了.在我们上手评估PHP 7的新特性之前,我们要先建立一个独立的开发环境. Homestead - A full-feature PHP 7 box 安装Homestead vagrant box Homestead是一个由Laravel官方维护的Vagrant "box".它基于Ubuntu 14.04,把一个LNMP环境.…
PHP7 up and running 泊学原文链接泊学实操视频 Uniform Variable Syntax 在PHP 7提出Uniform Variable Syntax之前,我们大多数人可能都没有意识到之前版本的PHP语法有多么“不一致”.而事实是在variable-variable和variable-properties的用法上,PHP之前的表现的确有些混乱. 现在好了,PHP 7修复了之前所有的语法一致性问题,并提供了一些新的语法,我们逐一看一下它们. Consistency Fix…
轻量级“集合”迭代器-Generator泊学视频链接泊阅文档链接Generator是PHP 5.5加入的新语言特性.但是,它似乎并没有被很多PHP开发者广泛采用.因此,在我们了解PHP 7对Generator的改进之前,我们先通过一个简单却显而易见的例子来了解下Generator究竟为我们解决什么问题. 一千万个整数的数组 如果我们要“创建一个指定元素个数的数组”,怎么做呢?我们可能会不加思索的写下下面的代码: function makeRange($range) { $data = []; f…
Type hints, Type safe 泊学实操视频 泊学原文链接PHP 7中最引人注目的新特性之一,无疑是Scalar type hints.我们可以在函数参数和返回值中使用scalar type hints,还可以指定scalar type的推导和匹配方式. Scalar type hints Type hints并不是什么新生事物,PHP 5.0第一次引入了type hints特性,允许我们指定函数的参数是一个特定class或interface类型.之后,在PHP 5.1中,我们可以指…
对C++和VS2010非常不熟悉,但是无奈赶着项目,只能看了点基础就上手,然后就碰到这个问题了. 原因分析: http://bbs.csdn.net/topics/340191697?page=1 编译器一般都是以文件为单位进行编译,如果修改了工程中的一个文件,那么将导致所有文件都要从新编译,这样的编译将耗费很长时间.      为了提高编译速度,将那些不常被修改,比较稳定,文件单独包含到一个指定的头文件中, 然后生成一个预编译头文件 *.pch . VC中默认的头文件为 stdAfx.h, 但…
我使用的是5.6.11版本的php 刚开始以为编译参数加了--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd,就可以不能安装mysql了. 但是使用了mysq_connect()函数后发现php无法解析,在apache的日志当中出现下面这个提示,刚开始想不通. PHP Fatal error: Call to undefined function mysql_connect() 因为原先的mysql.api已经在php5.5开始被移除,而之后的php 自…
在使用函数pcntl_fork()时报错  Fatal error: Uncaught Error: Call to undefined function pcntl_fork()....,原因是没有安装pcntl扩展包,有两种解决方式,一种是在编译php的时候加上./configure        --enable-pcntl,另一种是进入php源码的安装目录,运行phpize. 这里我选择第二种方式,进入压缩包目录 # pwd /usr/local/src/php-/ext/pcntl #…
php中的错误和异常是两个不同的概念. 错误:是因为脚本的问题,比如少写了分号,调用未定义的函数,除0,等一些编译语法错误. 异常:是因为业务逻辑和流程,不符合预期情况,比如验证请求参数,不通过就用 throw new 抛一个异常. 在php5的版本中,错误是无法被 try {} catch 捕获的,如下所示: <?php error_reporting(E_ALL); ini_set('display_errors', 'on'); try { hello(); } catch (\Excep…
前言 我相信你是遇到了同样的问题.通过搜索引擎来到这里的.为了不耽误排查问题的时间,我提前说明一下这篇文章所描述的问题范畴: 我遇到的问题和 c++ 模板相关: 如果我减少传递的参数的话,是有可能避免这个编译错误的: 和我使用的 VS 开发环境版本相关,我使用 VS2013 时报错,但是使用 VS2015 及以上版本就不报错: 和我使用的平台也相关,如果我改用 g++ 编译则不报错(gcc 版本为  4.9.2). 如果这不是你的场景,或者通过上述几种方法(本质上都是提高 c++ 编译器版本)可…