`
codejm
  • 浏览: 30395 次
  • 来自: 青岛
社区版块
存档分类
最新评论

php5 学习记录(1)

    博客分类:
  • php
阅读更多

一、php5主要的新特性

1.public /private/protected访问修饰符,针对对象中的方法和属性。

可以使用通用的面向对象访问修饰符来控制方法和属性的访问级别:

class MyClass {

    private $id = 18;

    public function getId() {
        return $this->id;
    }
}
 

2.统一的构造函数名称__construct().

为避免构造函数的名字和类的名字相同,现在用__construct()来声明,从而让你更加容易在类的分层中转移类:

 

class MyClass {
    function __construct() {
        print 'Inside constructor';
    }
}

 

  3.通过__destructor()定义对象的析构方法。

允许定义一个析构函数来注销一个对象:

 

class MyClass {
    function __destruct() {
        print ' Destroying object';
    }
}

 

  4.接口。

一个使用接口的类可以加载不止一个相关的接口。一个类只能继承自另一个类,但是可以实现任意多个接口:

 

interface Display {
    function display();
}
class Circle implements Display {
    function dispaly() {
        print ' Dispalying circle \n';
    }
}

 

  5.instanceof操作符。

instanceof用来检测一个给定的对象是否属于(继承于)某个类(class)、某个类的子类、某个接口(interface)。如果是则返回true。

 

if ($obj instanceof Circle) {
    print '$obj is a Circle';
}
 

 

 

6.Final 标记方法。

Final关键字允许你用来标识方法,使其不能被子类重载。

 

class MyClass {
    final function getBaseClassName() {
        return __CLASS__;
    }
}
 

 

7.Final标记类。

声明一个类为final类型后,它将不能被继承。下面的例子将报错。

 

final class FinalClass {
}

class BogusClass extends FinalClass {
}

 

 

8.强制复制对象

为了克隆一个对象,你必须使用clone关键字。你可以再类中声明一个__clone()方法,它将在克隆过程中被调用(调用在属性和方法从原对象复制过来以后进行):

 

class MyClas {
    function __clone() {
        print 'Object is being cloned';
    }
}
$obj = new MyClass();
$obj_copy = clone $obj;
 

 

9.类中的常量。

类定义中现在包含常量,而且可以用类来引用:

 

class MyClass {
    const SUCCESS = "Success";
    const FAILURE = "Failure";
}
print MyClass::SUCCESS;

 

  10.静态方法。

你现在可以定义静态方法,不用实例化就能使用他们。静态方法不能使用$this变量,因为它们并没有绑定到任何具体的对象:

class MyClass {

    static function helloWorld() {
        print 'Hello world';
    }
}
MyClass::helloWorld();

 

11.静态成员。

类的定义现在包含静态成员(属性),可以通过类自身来访问。通常用的最多的是单件(Singleton)模式:

 

class Singleton {
    static private $instance = NULL;
    private function __construct() {
    }
    static public function getInstance() {
        if (sell::$instance == NULL) {
            self::$instance = new Singleton();
        }
        return self::$instance;
    }
}

 

 

12.抽象类。

把类声明为抽象类可以防止它被实例化。但是你可以继承一个抽象类:

 

abstract class MyBaseClass {
    function dispaly() {
        print 'Default dispaly routine being called';
    }
}
 

 

13.抽象方法。

把方法声明为抽象的,以便在继承的子类中再去定义。包含抽象方法的类本身必须是一个抽象类:

 

abstact class MyBaseClass {
    abstract function dispaly();
}

 

  14.对象类型提示。

函数声明中可以对参数进行对象类型提示。如果函数调用的时候没有传递正确的对象类型,系统报错:

 

function expectsMyClass(MyClass $obj) {
}

 

  15.支持连续引用方法返回的对象。

在PHP4中,你不能直接引用方法返回的对象。你必须先赋值到一个中间变量,然后再使用该变量来引用。

php 4:

 

$dummy = $obj->method();
$dummy->method2();

 

  php 5:

 

$obj->method()->method2();

 

 

16.迭代。

php5允许php类和php继承类实现iterator接口。在实现迭代接口后,你可以用foreach()语言结构遍历一个类的实例:

 

$obj = new MyIteratorImplementaion();
foreach ($obj as $value) {
    print $value;
}

 

 

17.__autoload()方法。

__autoload()函数在你需要使用一个未定义的类的时候自动调用。通过调用这个函数,脚本的引擎在php抛出类未定义的错误之前提供最后一次加载类的机会:

 

function __autoload($class_name) {
    include_once($class_name . "php");
}
$obj = new MyClass();
$obj2 = new MyClass2();
 

18.异常处理。

php5增加了著名的try/throw/catch架构的异常处理范例。使用时,你只能抛出从Exception类继承的对象:

class SQLException extends Exception {

    public $problem;
    function __construct($problem) {
        $this->problem = $problem;
    }
}

try{
 ...
     throw new SQLException("Couldn't connect to database");
 ...
} catch (SQLException $e) {
     print "SQLException";
} catch (Exception $e) {
    print 'Other Exception';
}

 

19.foreach 函数支持引用。

在php 4中,你不能遍历一个数组的同时更改它的值。但是php 5可以通过给foreach()循环的参数加速&(引用)符号,让你在遍历数组的循环中更改数组的值:

 

foreach ($array as &$value) {
    if ($value === "NULL") {
        $VALUE = NULL
    }
}

 

  20.给引用参数设置默认值。

在php 4中,你只能给传递值的参数设置默认值。php 5 现在可以让你给传递引用的参数设置默认值:

 

function my_func(&$arg = null) {
    if ($arg === NULL) {
        print '$arg is empty';
    }
}
my_func();
 

 

分享到:
评论

相关推荐

    PHP个人学习笔记

    PHP个人学习笔记

    当年我学PHP时整理的学习笔记

    【标题】:“当年我学PHP时整理的学习笔记” 这篇学习笔记是作者在学习PHP编程语言的过程中逐步积累并整理的,涵盖了初学者从基础到进阶的一些关键知识点。PHP是一种广泛应用于网页开发的服务器端脚本语言,尤其在...

    PHP学习笔记、PHP实例

    ### PHP学习笔记与实例解析 #### 第一章:PHP高级语法与功能 ##### PHP的`date()`函数 `date()`函数是PHP中用于格式化日期和时间的强大工具。它可以将Unix时间戳转换成人类可读的日期和时间格式。这个函数有两个...

    php框架学习笔记.doc

    PHP框架学习笔记 PHP框架学习笔记是学习PHP框架的重要笔记,涵盖了CI框架的基本概念、控制器、模型、视图、URI路由、数据库操作、表单提交、上传文件、Session管理等方面的知识点。 CI框架的业务流程是从域名或...

    php100学习笔记

    根据提供的“php100学习笔记”的部分内容,我们可以总结出一系列重要的PHP知识点,涉及字符串处理、文件操作、类与对象的基础等内容。 ### 字符串处理 #### `str_replace` `str_replace`函数用于在字符串中替换...

    PHP学习笔记1

    标题:PHP学习笔记1 描述:本篇笔记旨在为初学者提供一个系统的学习路径,深入理解PHP编程语言的核心概念与实践技巧。通过本篇笔记,读者将能够掌握PHP的基础语法、变量、数据类型、控制结构、函数、面向对象编程、...

    基于Java的PHP日常学习笔记设计源码

    该项目是一款基于Java的PHP日常学习笔记设计源码,包含22个文件,涵盖5个Markdown文档、3个文本文件、2个PHP脚本、1个Jenkins+Gitlab自动部署配置、1个Linux cat命令示例、1个Linux磁盘挂载教程、1个Linux运维指南、...

    php学习笔记

    【PHP学习笔记】 在深入PHP之前,我们先回顾一下HTML的一些基础知识点。`<hr>`标签用于在HTML页面中创建一条水平线,起到分隔内容的作用。`target="_blank"`属性用于链接,当点击链接时会在新窗口打开目标页面。在...

    php基础学习笔记

    ### PHP基础学习笔记 #### 第一章:PHP + MySQL 基础入门 ##### Web 开发简介 在这一章节中,我们首先介绍了Web开发的基本概念及其工作原理。Web开发涉及创建和维护网站的过程,它包括前端开发(负责网站外观、...

    一个自己学习总结的php类学习笔记

    访问控制是面向对象编程中的关键概念,PHP5提供了三种访问修饰符:`public`、`private`和`protected`。`public`属性和方法可以在任何地方访问,`private`仅限于类的内部,而`protected`允许在类及其子类中访问。 ...

    php基本语法学习笔记

    这篇"php基本语法学习笔记"将引导我们深入理解PHP的核心概念和基础语法。通过博主杨梦在ITEYE博客上分享的文章链接(https://yangmeng.iteye.com/blog/1969617),我们可以获得关于PHP编程的实用知识。 首先,PHP...

    PHP学习笔记

    php的学习笔记,环境配置、开发基础、问题解决

    php学习笔记总结

    ### PHP学习笔记总结 #### 一、Trim() 函数 - **功能**:Trim() 函数用于删除字符串开头和结尾的空白字符(如空格、制表符等)。这是一个非常实用的功能,在处理用户输入的数据时尤其有用,可以避免因为用户无意中...

    php学习PPT教程笔记

    这份“php学习PPT教程笔记”是针对初学者设计的,旨在帮助新接触PHP的人们从基础开始,逐步掌握这一编程语言。 教程的第一部分可能涵盖了PHP的安装与配置。在Windows系统中,通常会使用XAMPP或WAMP这样的集成开发...

    PHP学习笔记.rar

    【PHP学习笔记】是作者四个月学习PHP过程中积累的个人笔记,主要涵盖了HTML基础、CSS基础以及PHP基础等核心内容。这些笔记对于初学者来说是非常有价值的资源,因为它们以小案例的形式展示了各种知识点,便于理解和...

    php个人学习笔记

    以下是对PHP学习笔记内容的详细阐述: 1. PHP简介:PHP是由Rasmus Lerdorf于1995年创建的,起初是一个简单的Perl脚本,后来发展成一种功能丰富的Web开发工具。PHP是嵌入在HTML中的,可以生成动态网页内容,支持多种...

    PHP PDO 学习笔记

    ### PHP PDO 学习笔记详解 #### 一、PDO简介 PDO(PHP Data Objects)是PHP 5中引入的一个数据库访问扩展,在PHP 6中它将成为连接数据库的标准方式,并逐步取代旧有的数据库连接方法。PDO的主要目标是为PHP提供一...

Global site tag (gtag.js) - Google Analytics