为了账号安全,请及时绑定邮箱和手机立即绑定

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
学习人数
综合评分8.90
570人评价 查看评价
9.3 内容实用
8.8 简洁易懂
8.6 逻辑清晰
  • 非静态方法调用属性,不需要加$符号

    查看全部
  • 受保护的属性与私有属性不允许外部调用,在类的成员方法内部是可以调用的。

    查看全部
  • 默认都为public,外部可以访问。一般通过->对象操作符来访问对象的属性或者方法,对于静态属性则使用::双冒号进行访问。当在类成员方法内部调用的时候,可以使用$this伪变量调用当前对象的属性。

    查看全部
  • 方法内部可以使用$this伪变量调用对象的属性或者方法


    查看全部
  • 这是序列化的 结果 : O 表示的是对象 s表示字符串 4是字符串的长度 name 就是字符串 后面的s也是字符串 7 是 字符串的值  new Car 也就是  说 name 的值 是 new Car 

    查看全部
  • 序列化是将变量转换为可保存或传输的字符串的过程;反序列化就是在适当的时候把这个字符串再转化成原来的变量使用。这两个过程结合起来,可以轻松地存储和传输数据,使程序更具维护性。


    <?php

    $a = array('a' => 'Apple' ,'b' => 'banana' , 'c' => 'Coconut'); 

    //序列化数组

    $s = serialize($a);

    echo $s;

    //输出结果:a:3:{s:1:"a";s:5:"Apple";s:1:"b";s:6:"banana";s:1:"c";s:7:"Coconut";}

    echo '<br /><br />';

    //反序列化

    $o = unserialize($s);

    print_r($o);

    //输出结果 Array ( [a] => Apple [b] => banana [c] => Coconut ) 

    ?>


    查看全部
  • 对象比较,当同一个类的两个实例的所有属性都相等时,可以使用比较运算符==进行判断,当需要判断两个变量是否为同一个对象的引用时,可以使用全等运算符===进行判断。


    对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值。


    对象序列化,可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。

    $str = serialize($a); //对象序列化成字符串
    $b = unserialize($str); //反序列化为对象


    查看全部
  • PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。


    方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。

    查看全部
  • 访问控制通过关键字public,protected和private来实现。被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。


    类属性必须定义为公有、受保护、私有之一。为兼容PHP5以前的版本,如果采用 var 定义,则被视为公有。


    类中的方法可以被定义为公有、私有或受保护。如果没有设置这些关键字,则该方法默认为公有。


    如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化

    查看全部
  • 静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用。静态属性不允许对象使用->操作符调用。


    静态方法也可以通过变量来进行动态调用

    $func = 'getSpeed';
    $className = 'Car';
    echo $className::$func();  //动态调用静态方法

    静态方法中,$this伪变量不允许使用。可以使用self,parent,static在内部调用静态方法与属性。


    查看全部
  • 在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。


    使用__destruct()进行定义,析构函数指的是当某个对象的所有引用被删除,或者对象被显式的销毁时会执行的函数。


    当PHP代码执行完毕以后,会自动回收与销毁对象,因此一般情况下不需要显式的去销毁对象。

    查看全部
  • 实例化是指在面向对象的编程中,把用类创建对象的过程称为实例化。是将一个抽象的概念类,具体到该类实物的过程。实例化过程中一般由类名 对象名 = new 类名(参数1,参数2...参数n)构成。

    面向对象的编程中,通常把用类创建对象的过程称为实例化,其格式如下:

    如 Date date=new Date();就是用日期类创建了一个日期的对象,就叫对象的实例化。

    多数语言中,实例化一个对象就是为对象开辟内存空间,或者是不用声明,直接使用new 构造函数名,建立一个临时对象。


    查看全部
    0 采集 收起 来源:PHP类和对象

    2019-04-25

  • ->是对象执行方法或取得属性用的。

    =>是数组里键和值对应用的。

    1、=> 的用法数组中用于数组的 key 和 value之间的关系例如:

    $a = array('0' => '1','2' => '4',);echo $a['0'];echo $a['2'];

    2、-> 的用法类中用于引用类实例的方法和属性例如:

    class Test{function add(){return $this->var++;}var $var = 0;}$a = new Test; 

    //实例化对象名称

    echo $a->add();echo $a->var;


    查看全部
    0 采集 收起 来源:PHP类和对象

    2019-04-25

  • 关联数组赋值有两种方式:

    第一种:用数组变量的名字后面跟一个中括号的方式赋值,当然,关联数组中,中括号内的键一定是字符串。比如,$arr['apple']='苹果';

    第二种:用array()创建一个空数组,使用=>符号来分隔键和值,左侧表示键,右侧表示值。当然,关联数组中,键一定是字符串。比如,array('apple'=>'苹果');

     



    查看全部
  • 如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。

    查看全部

举报

0/150
提交
取消
课程须知
需要有一定的网页基础知识如HTML、CSS样式等,并且已经学习完成《PHP入门篇》对PHP已经有了简单的了解,如变量、常量、数据类型等。
老师告诉你能学到什么?
全面的掌握PHP的理论知识与实践中的应用方法,提高编程能力与掌握网页开发技能。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!