PHP7
人生如初见_张默
这个作者很懒,什么都没留下…
展开
-
php7--变量处理机制修改
一、间接变量、属性和方法引用都按照从左到右的顺序进行解释: $$foo['bar']['baz'] // interpreted as ($$foo)['bar']['baz'] $foo->$bar['baz'] // interpreted as ($foo->$bar)['baz'] $foo->$bar['baz']() // interpreted as ...转载 2019-02-13 10:43:18 · 211 阅读 · 0 评论 -
php7--修改的函数
parse_ini_file()和parse_ini_string()的scanner_mode参数增加了INI_SCANNER_TYPED选项。 unserialize()增加了第二个参数,可以用来指定接受的类列表。RFC: https://wiki.php.net/rfc/secure_unserialize proc_open()打开的最大限制之前是写死的16,现在这个限制被移除了,最大...转载 2019-02-14 09:34:52 · 399 阅读 · 0 评论 -
php7--新增的函数
GMP模块新增了gmp_random_seed()函数。 PCRE增加了preg_replace_callback_array方法。RFC: https://wiki.php.net/rfc/preg_replace_callback_array 增加了intdiv()函数。 增加了error_clear_last()函数来重置错误状态。 增加了ZipArchive::setComapre...转载 2019-02-14 09:34:43 · 579 阅读 · 0 评论 -
php7--移除的扩展和SAPI
删除了:- sapi/aolserver- sapi/apache- sapi/apache_hooks- sapi/apache2filter- sapi/caudium- sapi/continuity- sapi/isapi- sapi/milter- sapi/nsapi- sapi/phttpd- sapi/pi3web- sapi/roxen- sapi/...转载 2019-02-14 09:34:34 · 478 阅读 · 0 评论 -
php7--其他对扩展的修改和新增类、接口
对扩展的修改Mhash不再是一个扩展,使用前需要用function_exists("mhash") 来检查方法是否存在。 GD库依赖libwebp,增加对WebP的支持。 Openssl 最小支持的openssl版本是0.9.8. 新增类和接口- ReflectionGenerator- ReflectionType ...转载 2019-02-14 09:34:24 · 260 阅读 · 0 评论 -
php7--新增常量
一、核心增加了PHP_INT_MIN常量。二、PCRE增加了PREG_JIT_STACKLIMIT_ERROR常量。三、Zlib. ZLIB_NO_FLUSH. ZLIB_PARTIAL_FLUSH. ZLIB_SYNC_FLUSH. ZLIB_FULL_FLUSH. ZLIB_BLOCK. ZLIB_FINISH四、GDT1Lib的支持被移除。下面的方法和资...转载 2019-02-14 09:34:16 · 377 阅读 · 0 评论 -
php7--配置文件修改及其他修改
其他修改:NaN和Infinity转为整型的时候,始终为0。 Instead of being undefined and platform-dependent, NaN and Infinity will always be zero when cast to integer. Calling a method on a non-object现在会抛出一个可以扑获的错误,不再是致命错误。...转载 2019-02-14 09:34:07 · 633 阅读 · 0 评论 -
php7--windows支持
一、核心:64位版本PHP7原生支持64位整数。64位版本增加大文件支持。支持getrusage()。二、ftpftp扩展始终以共享的方式提供。SSL的支持不再依赖openssl扩展,只依赖openssl库。如果编译的时候加入了openssl的支持,ftp_ssl_connect会自动激活。三、imap静态编译ext/imap被禁用。四、odbcodbc模块...转载 2019-02-14 09:33:58 · 195 阅读 · 0 评论 -
thiphp5.1---php7.2->三元运算
{$name ?? '默认值'}表示如果有设置$name则输出$name,否则输出默认值。{$name?='默认值'} 表示$name为真时才输出默认值。{$name ?: 'NO'}表示如果$name为真则输出$name,否则输出NO。{$a==$b ? 'yes' : 'no'}表达式为真输出yes,否则输出no...原创 2019-07-16 14:34:23 · 131 阅读 · 0 评论 -
php7--弃用功能
核心:PHP4风格的构造函数将被弃用。(和类名同名的方法视为构造方法,这是PHP4的语法。) 静态调用非静态方法将被弃用。OpenSSLcapture_session_meta选项将被弃用,可以调用stream_get_meta_data()获得。PHP4 风格的构造函数在 PHP4 中类中的函数可以与类名同名,这一特性在 PHP7 中被废弃,同时会发出一个 E_DEPRECA...转载 2019-02-14 09:35:02 · 435 阅读 · 0 评论 -
php7--新增功能
一、核心增加了group use语法声明。RFC: https://wiki.php.net/rfc/group_use_declarations 增加了null合并运算符??。RFC: https://wiki.php.net/rfc/isset_ternary 64位PHP7字符串长度可以超过2^31次方字节。 增加了Closure::call()方法。 双引号字符串和heredo...转载 2019-02-14 09:35:11 · 197 阅读 · 0 评论 -
php7--其他修改
CURL模块:禁止禁用CURLOPT_SAFE_UPLOAD选项,通过curl上传文件必须使用curl_file/CURLFILE接口。 DATE模块:mktime()和gmmktime()函数移除了$is_dst parameter参数。 DBA模块:dba_delete() 如果在inifile里面没有找到key的时候会返回false。 GMP模块:必须用libgmp 4...转载 2019-02-13 11:32:56 · 157 阅读 · 0 评论 -
php7--list()修改
一、list()不再按照相反的顺序赋值list($array[], $array[], $array[]) = [1, 2, 3]; var_dump($array);上面的代码会返回一个数组:$array == [1, 2, 3] 而不是之前的 [3, 2, 1]注意:只是赋值的顺序发生变化,赋的值还是和原来一样的。list($a, $b, $c) = [1, 2, 3]; ...转载 2019-02-13 10:45:36 · 1696 阅读 · 0 评论 -
php7--循环
一、foreach()循环对数组内部指针不再起作用。$array = [0, 1, 2]; foreach ($array as &$val) { var_dump(current($array)); }PHP7运行的结果会打印三次int(0),也就是说数组的内部指针并没有改变。之前运行的结果会打印int(1), int(2)和bool(false)二、按照值...转载 2019-02-13 10:52:11 · 418 阅读 · 0 评论 -
php7--参数处理机制修改
一、重复参数命名不再支持。重复的参数命名不再支持。比如下面的代码执行的时候会报错:public function foo($a, $b, $unused, $unused) { // ... }编者按:应该没有人这样用吧。二、func_get_arg和func_get_args()调整func_get_arg()和func_get_args()这两个...转载 2019-02-13 10:55:26 · 431 阅读 · 0 评论 -
php7--整型处理机制修改
一、无效八进制数字会报编译错误无效的八进制数字(包含大于7的数字)会报编译错误,比如下面的代码会报错: $i = 0781; // 8 is not a valid octal digit![点击并拖拽以移动]老版本的PHP会把无效的数字忽略。二、位移负的位置会产生异常 var_dump(1 >> -1); // ArithmeticEr...转载 2019-02-13 10:57:38 · 280 阅读 · 0 评论 -
php7---字符串处理机制修改
一、含有十六进制字符的字符串不再视为数字含有十六进制字符的字符串不再视为数字,也不再区别对待。比如下面的代码:var_dump("0x123" == "291"); // bool(false) (previously true) var_dump(is_numeric("0x123")); // bool(false) (previously true) ...转载 2019-02-13 11:06:27 · 443 阅读 · 0 评论 -
php7--错误处理机制修改
一、现在有两个异常类:Exception and Error.PHP7现在有两个异常类,Exception and Error。这两个类都实现了一个新的接口:Throwable。在您的异常处理代码中,类型暗示可能需要调整下。二、一些致命错误和可恢复致命错误改为抛出Error对象。有一些致命错误和可恢复致命错误现在改为报出Error对象。Error对象是和Exception独立的,它们无...转载 2019-02-13 11:19:53 · 614 阅读 · 0 评论 -
php7--其他语言层面的修改
一、在非兼容$this语境中以静态方式调用非静态方法将不再支持。在非兼容$this语境中以静态方式调用非静态方法将不再支持。在这种场景下面,$this不会被定义,但调用还可以调用,但会有一个警告提示:class A { public function test() { var_dump($this); } } // Note: Does NOT extend A class...转载 2019-02-13 11:29:54 · 173 阅读 · 0 评论 -
php7--标准库修改
substr()方法在边界切分的时候会返回一个空字符串,不再返回FALSE.call_user_method() and call_user_method_array() 被删除了。当一个输出缓冲是在另外一个输出缓冲处理器创建时,ob_start()返回E_RECOVERABLE_ERROR错误,不再返回E_RROR错误。优化了内置的排序算法,对相等元素的排序可能和之前不同。fpm...转载 2019-02-13 11:30:41 · 183 阅读 · 0 评论 -
php7.2--三目运算-
双问号??和问号+冒号?:$res = 0;$a = $res ?? '';$b = $res ?: 1;echo $a . '<br/>';//判断$res是否设置,存在$a=0,否则为空echo $b . '<br/>';//判断$res是否为空,为空是默认$b=1...原创 2019-08-26 12:51:13 · 754 阅读 · 0 评论