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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
学习人数
综合评分8.90
570人评价 查看评价
9.3 内容实用
8.8 简洁易懂
8.6 逻辑清晰
  • 实现一个网页输入,一个网页输出cookie的方法 在www根目录下创建cookie1.php 并写入:

    <html>
    
    <head>
    
    </head>
    
    <body>
    <th>请输入用户名</th>
    <form method="POST" action="index.php">
        <input type="text" name="user" value="">
        <input type="password" name="password" value="">
        <input type="submit" name="but" value="点击提交">
    </form>
    </body>
    
    </html>

    创建cookie2.php 并写入

    <?php
    header('content-type:text/html;charset=utf-8');
    echo "用户名为:".$_POST['user']."<br>";
    echo "密码为:".$_POST['password']";


    查看全部
    0 采集 收起 来源:设置cookie

    2018-04-28

  • <?php
    setcookie('test', time());//设置cookie属性
    ob_start();//打开输出控制缓冲
    print_r($_COOKIE); 
    $content = ob_get_contents();//复制缓冲区内容到$content中
    $content = str_replace(" ", '&nbsp;', $content);
    ob_clean();//清空(擦掉)输出缓冲区
    header("content-type:text/html; charset=utf-8");
    echo '当前的Cookie为:<br/>';
    echo nl2br($content);//nl2br 在字符串所有新行之前插入 HTML 换行标记


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

    2018-04-28

  • 静态方法不需要实例化对象

    查看全部
  • 一般通过->来访问对象的属性或者方法,对于静态属性用::双冒号进行访问

    查看全部
  • 文档上的解释为:如果提供了参数 matches ,它将被填充为搜索结果。 $matches[0] 将包含完整模式匹配到的文本, $matches[1] 将包含第一个捕获子组匹配到的文本,以此类推。
    文档上对于子组的说明为:子组通过圆括号分隔界定,并且它们可以嵌套。
    如果正则表达式写为$p = '/\w+\s\w+/';,则没有子组,$matches[1]为空,而$matches[0]包含所匹配的文本;但是将表达式加上括号写为$p = '/(\w+\s\w+)/';,则有了子组,此时$matches[1]与$matches[0]相同。

    查看全部
  • 用反斜杠转义是转义内容中的/,而不是作为分隔符的/;

    当模式中包含较多的分隔符时,建议更换其他的字符作为分隔符,也可以使用preg_quote进行转义,如:

    $p = 'http://';
    $p='/'.reg_quote($p,'/').'/';

    分隔符后面可以使用模式修饰符,模式修饰符包括:i ,m ,s , x使用i修饰符可以忽略大小写匹配;如:

    $str = "Http://www.imooc.com/";
    if (preg_match('/http/i', $str)) {
        echo '匹配成功';
    }


    查看全部
  • $a = '/字符串1/';  //胎儿(注意在单引号内要用分隔符围住,分隔符可以是非数字、非反斜线、非空格的任意字符。经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~))
    $b = '字符串2';   //孕妇
    if(preg_match($a,$b)){   //如果$a被$b包含
    echo '这两个是母子'
    }


    查看全部
  • $b = clone $a;克隆即应用,两个变量指向不同的存储空间;function __clone(){}方法的用法

    https://www.imooc.com/video/3689

    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);
    $str = serialize($a); //对象序列化成字符串
    echo $str.'<br>';
    $c = unserialize($str); //反序列化为对象


    查看全部
  • 代表性的代码

    <?php
    class Car {
        public $speed = 10;
        //在这里使用重载实现speedDown方法
        public function __call($name,$args){
            if($name == "speedDown"){
                $this->speed-=10;
            }
        }
    }
    $car = new Car();
    $car->speedDown(); //调用不存在的speedDown方法
    echo $car->speed;


    查看全部
  • <?php
    header("content-type:text/html;charset=utf-8");
    class Car {
        private $ary = array();
    
        public function __set($key, $val) {
            $this->ary[$key] = $val;
        }
    
        public function __get($key) {
            if (isset($this->ary[$key])) {
                return $this->ary[$key];
            }
            echo "没有下标为".$key."的值";
        }
    
        public function __isset($key) {
            if (isset($this->ary[$key])) {
                return true;
            }
            return false;
        }
    
        public function __unset($key) {
            unset($this->ary[$key]);
        }
    }
    $car = new Car();
    $car->__set(1,2);
    echo $car->__get(3);


    查看全部
  • class 类名  extends 父类名 {}    ,创建一个继承于父类的子类   。

    <?php
    class Car {
        public $speed = 0; //汽车的起始速度是0
        public function speedUp() {
            $this->speed += 10;
            return $this->speed;
        }
    }
    //定义继承于Car的Truck类
    class Truck extends Car{
        public function speedUp(){
            $this->speed = Car::speedUp()+50;//此时speed为父类中的speed加上50,即speed = 60
        }
    }
    $car = new Truck();//创建对象,赋值给$car
    $car->speedUp();//调用对象中的speedUp
    echo $car->speed;//输出$car中的speed,结果为60

    比较有代表性的一段代码!

    查看全部
  • 被定义为公有的类成员可以在任何地方被访问。被定义为受保护的类成员则可以被其自身以及其子类和父类访问。被定义为私有的类成员则只能被其定义所在的类访问。

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

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

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

    查看全部
  • PHP类和对象之构造函数和析构函数

    PHP5可以在类中使用__construct()定义一个构造函数,具有构造函数的类,会在每次对象创建的时候调用该函数,因此常用来在对象创建的时候进行一些初始化工作。

    class Car {function __construct(){
           print "构造函数被调用\n";
           }
           } 
           $car = new Car(); //实例化的时候 会自动调用构造函数__construct,这里会输出一个字符串

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

    class Car {function __construct(){
            print "父类构造函数被调用\n";
             }
           }
           class Truck extends Car{function __construct(){
                  print "子类构造函数被调用\n";
                  parent::__construct();
                  }
                  }
                  $car = new Truck();

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

    class Car {function __construct(){
            print "构造函数被调用 \n";
             }
           function __destruct(){
           print "析构函数被调用 \n";
           }
            }
           $car = new Car(); //实例化时会调用构造函数 echo '使用后,准备销毁car对象 \n'; 
           unset($car); //销毁时会调用析构函数

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


    查看全部
  • (重要:调用类中的属性时,不能加$符号!!!)属性声明是由关键字 public,protected 或者 private 开头,后面跟一个普通的变量声明来组成。属性的变量可以设置初始化的默认值,默认值必须是常量。
    访问控制的关键字代表的意义为:
    public:公开的
    protected:受保护的
    private:私有的
    默认都为public,外部可以访问。一般通过->对象操作符来访问对象的属性或者方法,对于静态属性则使用::双冒号进行访问。当在类成员方法内部调用的时候,可以使用$this伪变量调用当前对象的属性。
    受保护的属性与私有属性不允许外部调用,在类的成员方法内部是可以调用的。

    查看全部

举报

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

微信扫码,参与3人拼团

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

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