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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
学习人数
综合评分8.90
570人评价 查看评价
9.3 内容实用
8.8 简洁易懂
8.6 逻辑清晰
    1. 类属性必须定义为公有、受保护、私有之一

    2. (为兼容PHP5以前的版本,如果采用 var 定义,则被视为公有。)

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

    查看全部
  • 构造函数:__construct()

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

    析构函数:__destruct() ——销毁函数

    查看全部
  • 方法就是在类中的function,

    类的方法也具有public,protected 以及 private 的访问控制。

    查看全部
  • 类中定义的变量,通常属性跟数据库中的字段有一定的关联,因此也可以称作“字段”。

    属性声明是由关键字 public,protected 或者 private 开头,后面跟一个普通的变量声明来组成。

    public:公开的
    protected:受保护的
    private:私有的

    查看全部
  • 类通过关键字class开头,然后是类名与花括号,

    在花括号中定义类的属性与方法。

    类名必须是字母或下划线开头,后面紧跟若干个字母、数字或下划线,

    类名最好能够表意,可以采用名词或者英文单词。

    查看全部
  • 看了一遍大家的评论 笔记  代码  无不是为了凑这个60而强行解释
    这里重写父类方法了  实例化的也是子类对象  强行parent又何必呢?而且你们理解的累加不是+=?学习不能自欺欺人


    如果为了跳过检查,完成本节代码验证,这样做也可:


    <?php
    class Car {
        public $speed = 0; //汽车的起始速度是0
        
        public function speedUp() {
            $this->speed += 10;
            return $this->speed;
        }
    }
    //定义继承于Car的Truck类
    class Truck extends Car{
            //public $speed = 0; //汽车的起始速度是0
        
        public function speedUp() {
            $this->speed = 60;
            return $this->speed;
    }
    }
    $car = new Truck();
    $car->speedUp();
    echo $car->speed;

    查看全部
  • //在这里设置name的session值为jobs

    session_start();

    $_SESSION['name']='jobs';

    查看全部
    0 采集 收起 来源:使用session

    2023-03-29

  • <?php

    //开始使用session

    session_start();

    //设置一个session

    $_SESSION['test'] = time();

    //显示当前的session_id

    echo "session_id:".session_id();

    echo "<br>";


    //读取session值

    echo $_SESSION['test'];


    //销毁一个session

    unset($_SESSION['test']);

    echo "<br>";

    var_dump($_SESSION);

    查看全部
  • Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据。一般情况下,Cookie通过HTTP headers从服务端返回到客户端。多数web程序都支持Cookie的操作,因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制。

    PHP通过setcookie函数进行Cookie的设置,任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通过$_COOKIE['key']的形式来读取某个Cookie值。

    PHP中的Cookie具有非常广泛的使用,经常用来存储用户的登录信息,购物车等,且在使用会话Session时通常使用Cookie来存储会话id来识别用户,Cookie具备有效期,当有效期结束之后,Cookie会自动的从客户端删除。同时为了进行安全控制,Cookie还可以设置域跟路径。



    <?php

    setcookie('test', time());//cookie设置

    ob_start();

    print_r($_COOKIE); //任何从浏览器发回的Cookie都存储在$_COOKIE的全局变量

    $content = ob_get_contents();

    $content = str_replace(" ", '&nbsp;', $content);

    ob_clean();

    header("content-type:text/html; charset=utf-8");

    echo '当前的Cookie为:<br>';

    echo nl2br($content);

    查看全部
    0 采集 收起 来源:cookie简介

    2023-03-28

  • 3-3元字符与转义和3-5及之后第三章跳过

    查看全部
    0 采集 收起 来源:元字符与转义

    2023-03-28

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

    class Car {
    }
    $a = new Car();
    $b = new Car();
    if ($a == $b) echo '==';   //true
    if ($a === $b) echo '==='; //false

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

    class Car {
       public $name = 'car';
       
       public function __clone() {
           $obj = new Car();
           $obj->name = $this->name;
       }
    }
    $a = new Car();
    $a->name = 'new car';
    $b = clone $a;
    var_dump($b);

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

    class Car {
       public $name = 'car';
    }
    $a = new Car();
    $str = serialize($a); //对象序列化成字符串
    echo $str.'<br>';
    $b = unserialize($str); //反序列化为对象
    var_dump($b);

    查看全部
  • __call实现方法的重载

    public function __call($name, $args) {
       if ($name == 'speedDown') {
           $this->speed -= 10;
       }
    }

    $args不能少

    查看全部
  • 属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性

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

    class Car {
        public $speed = 0;
        
        public function __call($name, $args) {
            if ($name == 'speedUp') {
                $this->speed += 10;
            }
        }
    }
    $car = new Car();
    $car->speedUp(); //调用不存在的方法会使用重载
    echo $car->speed;
    查看全部
  • foreach($fruit as $key=>$value){

        echo '<br>键是:'.$key.',对应的值是:'.$value;

    }

    查看全部
  • /**

    * 新建一个Car类,举例说明 动态 静态 的区别(感觉也有权限控制)。 公开 私有 受保护 的访问控制(感觉是控制访问权限)

    静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用。

    静态属性不允许对象使用->操作符调用。


    动态方法和静态方法,从形式上来看区别在于,有无static修饰

    静态方法常驻内存,只能访问静态属性。效率高,内存占用高

    动态方法,可以访问静态属性,也可以访问非静态属性。使用后消毁比静态多一步,所以效率低于静态,内存占用低

    */

    class Car

    {

    public $name = '汽车';//定义一个 公开 动态 属性名字是 汽车


    //public $price = '100000';//定义一个 私有 动态 属性价格为100000


    protected $corlor = '白色';//定义一个 受保护 动态 属性顔色是 白色


    private $price = '100000';//定义一个 私有 动态 属性价格为100000


    public static $speed = '10' ;//定义一个 私有 静态 属性初始速度值为10


    public function getPrice()

    {

    return $this->price;

    }

    public function getName()

    {

    return $this->name;

    }

    public function getSpeed()

    {

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

    }

    public function getSpeed_d()

    {

    //动态方法、普通方法、非静态方法 都是一种方法!

    echo self::$speed."<br />";//普通方法调用静态属性,同样使用self关键词

    echo $this->name;

    }

    public static function getSpeed_j()

    {

    echo self::$speed."<br />";

    //echo $this->name;//错。静态方法不能调用非静态属性 Fatal error: Using $this when not in object context in /var/www/example.com/public_html/index2.php on line 56  //因为 $this代表实例化对象,而这里是类,不知道 $this 代表哪个对象

    }


    }


    echo Car::$speed;//静态属性与方法可以在 不实例化类 的情况下调用,直接使用 类名::方法名 的方式进行调用。不允许(实例化)对象使用 -> 操作符调用。

    echo "<br />";

    $car = new Car();//实例化 Car类 为 对象

    //echo Car->speed; 不对

    //echo $car->speed;也不对只能用下面的方式

    echo Car::$speed;//静态属性使用::双冒号进行访问

    echo "<br />";

    echo $car->name;//公开外部可以访问

    echo "<br />";

    //echo "出错了,错误原因如下,".$php_errormsg."之后的程序不能执行";

    //echo $car->corlor;//受保护外部不可访问 无结果   报错后 之下的所有 方法不能使用 属性不可调用 不清楚为什么


    echo $car->speed;//静态属性不允许(实例化)对象使用 -> 操作符调用。 无结果

    echo "出错了,错误原因是:".$php_errormsg;

    echo "<br />";



    //echo $car->price;//私有外部不可以访问,无结果.只能用下面的方式,公开方法访问 私有 受保护的属性

    echo $car->getPrice();

    echo "<br />";

    //当然公开方法也可以访问公开属性

    echo $car->getName();

    echo "<br />"."到此就讲明了公开、私有、受保护的访问控制";

    echo "<br />";



    echo $car->getSpeed_d()."<br />"."普通方法调用 动态 静态属性";

    echo "<br />";


    echo $car->getSpeed_j()."<br />"."静态方法调用静态属性,不能调用非静态属性";

    echo "<br />"."到此就讲明了动态 静态 的区别";

    echo "<hr />";

    查看全部

举报

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

微信扫码,参与3人拼团

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

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