-->

PHP资讯

您的当前位置:首页 > 资讯 > PHP基础

php7新特性4

2021-04-06 13:49:40  来源:admin 点击:741

整数部分
PHP 7引入了一个新的函数intdiv(),它对它的操作数进行整数除法,并将除法运算返回为int。

<?php
   $value = intdiv(10,3);
   var_dump($value);
   print(" ");
   print($value);

   //output
   int(3)
   3
?>


会话选项
session_start()函数接受来自PHP7 + 的一系列选项来覆盖php.ini中设置的会话配置指令。这些选项支持session.lazy_write,默认情况下,它会导致PHP在会话数据发生更改时覆盖任何会话文件。


添加的另一个选项是read_and_close,它表示应该读取会话数据,然后应该立即关闭会话。例如,将session.cache_limiter设置为private,并使用以下代码片段将标志设置为在读取完毕后立即关闭会话。

<?php
   session_start([
      'cache_limiter' => 'private',
      'read_and_close' => true,
   ]);
?>


弃用
PHP 4样式构造函数是与它们定义的类具有相同名称的方法,现在已被弃用,并且将来将被删除。如果PHP 4的构造函数是类中定义的唯一构造函数,则PHP 7将发出E_DEPRECATED。实现__construct()方法的类不受影响。

<?php
   class A {
      function A() {
         print('Style Constructor');
      }
   }
?>


对非静态方法的静态调用已被弃用,并可能在将来被删除

<?php
   class A {
      function b() {
         print('Non-static call');
      }
   }
   A::b();
   // Deprecated: Non-static method A::b() should not be called statically in...Non-static call
?>


password_hash()函数的salt选项已被弃用,所以开发人员不会生成自己的(通常是不安全的)盐。当开发人员不提供盐时,函数本身会生成密码安全的盐,因此不再需要定制盐的生成。
该capture_session_meta
SSL上下文选项已被弃用。SSL元数据现在通过stream_get_meta_data()函数使用


错误处理
从PHP 7开始,错误处理和报告已经改变。而不是通过PHP 5使用的传统错误报告机制来报告错误,现在大多数错误都是通过抛出错误异常来处理的。与异常类似,这些错误异常会一直冒泡,直到它们到达第一个匹配的catch块。


如果没有匹配的块,则使用set_exception_handler()安装的默认异常处理程序将被调用。如果没有默认的异常处理程序,那么异常将被转换为致命错误,并将像传统的错误一样处理。


由于错误层次结构不是从Exception扩展的,所以使用catch(Exception $ e){…}块来处理PHP 5中未捕获的异常的代码将不会处理这样的错误。catch(Error $ e){…}块或set_exception_handler()处理程序是处理致命错误所必需的。

<?php
   class MathOperations {
      protected $n = 10;

      // Try to get the Division by Zero error object and display as Exception
      public function doOperation()string {
         try {
            $value = $this->n % 0;
            return $value;
         } catch (DivisionByZeroError $e) {
            return $e->getMessage();
         }
      }
   }

   $mathOperationsObj = new MathOperations();
   print($mathOperationsObj->doOperation());

   // output
   Modulo by zero
?>


相关文章更多 >

© 2024版权所有 水水网

电话:171780793