加入收藏 | 设为首页 | 会员中心 | 我要投稿 阳江站长网 (https://www.0662zz.cn/)- 办公协同、云通信、区块链、物联平台、高性能计算!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

一文详解PHP5-8各版本特性

发布时间:2022-08-10 11:09:10 所属栏目:PHP教程 来源:互联网
导读:PHP5-8各版本特性汇总 PHP5.1: autoload PDO MySQLi 类型约束 PHP5.2: JSON 支持 PHP5.3: 命名空间 匿名函数 闭包 新增魔术方法__callStatic()和__invoke() 新增魔术变量__DIR__ 动态调用静态方法 延迟静态绑定 Heredoc和 Nowdoc 类外使用const定义常量
  PHP5-8各版本特性汇总
  PHP5.1:
 
  autoload
  PDO
  MySQLi
  类型约束
  PHP5.2:
 
  JSON 支持
  PHP5.3:
 
  命名空间
  匿名函数
  闭包
  新增魔术方法__callStatic()和__invoke()
  新增魔术变量__DIR__
  动态调用静态方法
  延迟静态绑定
  Heredoc和 Nowdoc
  类外使用const定义常量
  三元运算符
  Phar
  PHP5.4:
 
  Short Open Tag
  数组简写
  Traits,
  内置 Web 服务器
  动态访问静态方法
  实例化时访问类成员
  PHP5.5:
 
  yield
  list用于foreach
  细节修改
  PHP5.6:
 
  常量增强
  命名空间增强
  可变函数参数
  PHP7.0:
 
  标量类型声明
  返回值类型声明
  defined定义常量数组
  匿名类
  null合并运算符
  PHP7.1:
 
  可为空类型
  void类型
  多异常捕获
  PHP7.2:
 
  新的对象object
  允许重写抽象方法
  PHP7.3:语法层面没有很大的改变
 
  PHP7.4:
 
  类型属性
  箭头函数
  Null合并运算符支持方法
  Opcache 预加载
  PHP8.0:
 
  JIT即时编译
  命名参数
  注解
  联合类型
  Match表达式
  Nullsafe 运算符
  构造器属性提升
  PHP5.1
  __autoload()魔术方法
  这是一个自动加载函数,在PHP5中,当我们实例化一个未定义的类时,就会触发此函数。可以通过定义这个函数来启用类的自动加载。
 
 
 
  function  __autoload($className) {  
 
      $filePath = “project/class/{$className}.php”;  
 
      if (is_readable($filePath)) {  
 
          require($filePath);  //这里可以只用require,因为一旦包含进来后,php引擎再遇到类A时,将不会调用__autoload,而是直接使用内存中的类A,不会导致多次包含。
 
      }  
 
  }  
 
  $a = new A();  
 
  $b = new B();  
 
  $c = new C();
 
  PHP中__autoload()魔术方法详解
 
  PDO
  PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口。
  安装
  可以通过 PHP 的 phpinfo() 函数来查看是否安装了PDO扩展。
 
 
  //Linux
 
  extension=pdo.so
 
  //Windows  
 
  extension=php_pdo.dll
 
  使用
 
 
 
  <?php
 
  $dbms='mysql';     //数据库类型
 
  $host='localhost'; //数据库主机名
 
  $dbName='test';    //使用的数据库
 
  $user='root';      //数据库连接用户名
 
  $pass='';          //对应的密码
 
  $dsn="$dbms:host=$host;dbname=$dbName";
 
 
  try {
 
      $dbh = new PDO($dsn, $user, $pass); //初始化一个PDO对象
 
      echo "连接成功<br/>";
 
      /*你还可以进行一次搜索操作
 
      foreach ($dbh->query('SELECT * from FOO') as $row) {
 
          print_r($row); //你可以用 echo($GLOBAL); 来看到这些值
 
      }
 
      */
 
      $dbh = null;
 
  } catch (PDOException $e) {
 
      die ("Error!: " . $e->getMessage() . "<br/>");
 
  }
 
  //默认这个不是长连接,如果需要数据库长连接,需要最后加一个参数:array(PDO::ATTR_PERSISTENT => true) 变成这样:
 
  $db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true));
 
  PHP PDO
 
  MySQLi
  mysqli.dll是PHP对mysql新特性的一个扩展支持,允许访问MySQL 4.1及以上版本提供的功能。
  mysql与mysqli的区别:
  mysqli连接是永久连接,而mysql是非永久连接。
 
  mysql连接每当第二次使用的时候,都会重新打开一个新的进程。mysqli连接一直都只使用同一个进程。
 
  使用
 
 
  $conn = mysqli_connect('localhost', 'root', '123', 'db_test') or ('error');
 
  $sql = "select * from db_table";
 
  $query = mysqli_query($conn,$sql);
 
  while($row = mysqli_fetch_array($query)){
 
      echo $row['title'];
 
  }

(编辑:阳江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读