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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
学习人数
综合评分8.90
570人评价 查看评价
9.3 内容实用
8.8 简洁易懂
8.6 逻辑清晰
  • 如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。

    class Car {
       private function __construct() {
           echo 'object create';
       }

       private static $_object = null;
       public static function getInstance() {
           if (empty(self::$_object)) {
               self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象
           }
           return self::$_object;
       }
    }
    //$car = new Car(); //这里不允许直接实例化对象
    $car = Car::getInstance(); //通过静态方法来获得一个实例

    查看全部
  • 直接写的字符串是不会匹配的. 只有符合正则规则才会匹配

    查看全部
  • 元字符:正则表达式中具有特殊含义的字符

    \        转义字符        \s匹配任意空白符 

    ^        在方括号外面时,表示断言目标的开始位置       /^我[^\s]+(苹果|香蕉)$/

              作为第一个字符时,表示字符取反     [^\s]匹配任意非空白符

    $        断言目标的结束位置        /^我[^\s]+(苹果|香蕉)$/

    .        匹配除换行符外的任何字符    [\w\.\-]

    [        开始字符类定义

    ]         结束字符类定义

    |        开始一个可选分支          苹果|香蕉  匹配苹果或香蕉

    (        子组的开始标记

    )        子组的结束标记

    ?        作为量词表示0次或1次匹配

    *        量词,0次或多次匹配

    +        量词,1次或多次匹配        [^\s]+一次或多次匹配空白字符

    {        自定义量词开始标记

    }        自定义量词结束标记

    -        标记字符范围            

             在方括号内时,0-9表示0到9之间的所有数字

    /^我[^\s]+(苹果|香蕉)$/

    ^开始        

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

    2021-04-13

  • /http:\/\//

    正则匹配模式由分隔符/包括

    如果正则匹配模式中需要匹配分隔符,则可以使用反斜杠\进行转义,即是标注正则匹配模式中的分割符是需要匹配的对象

    $p = '/' . preg_quote($p, '/') . '/';

    点号.用来串联字符串

    preg_quote来标注变量$p中存在需要匹配的字符'/'

    查看全部
  • ?php

    clahttps://www.imooc.com/code/547#editor-tabs-phpss Car {

        public $name = 'car';

        

        public function __clone() {            //   __clone来进行对象复制

            $obj = new Car();

            $obj->name = $this->name;

        }

    }

    $a = new Car();          // 声明一个对象a

    $a->name = 'new car';    // 对象a的名字定义为'new car'

    $b = clone $a;           // 克隆对象a,把对象a属性name的值复制复制给对象b

    if ($a == $b) echo '==';   //true        两个对象都是同一个类的实例,两个对象的属性都相等

    if ($a === $b) echo '==='; //false       两个对象是否是同一个


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

    echo "\n" . $str.'<br>';

    $c = unserialize($str); // 字符串反序列化为对象

    var_dump($c);



    //  “var_dump”是PHP中的调试函数,用于判断一个变量的类型与长度,并输出变量的数值。

    查看全部
  • <?php

    class Car {

        public $speed = 10;

        /**

         *  方法__call实现重载:

         *  当调用与参数$name匹配的函数时,会把该函数在类中重新载入

         */

        public function __call($name, $args) {

            if ($name == 'speedDown') {

                $this->speed -= 10;

            }

        }

    }

    $car = new Car();

    $car->speedDown(); //调用不存在的speedDown方法

    echo $car->speed;

    /**

     *      __set:  实现对不存在的属性赋值

     */

     

    public function __set($key, $val) {

        $this->ary[$key] = $val;

    }

    $car->name = '汽车';         //    当类中属性name不存在时,创建属性name,并赋值

    /**

     *      __get:  实现对不存在的属性读取

     */

    public function __get($key) {

        if (isset($this->ary[$key])) {        //    如果类中的属性key不存在

            return $this->ary[$key];          //    返回这个值

        }

        return null;

    }


    /**

     *      __isset:  判断属性是否设置

     */

    public function __isset($key) {

        if (isset($this->ary[$key])) {

            return true;                     //      如果属性已设置,返回true

        }

        return false;

    }

     

    /**

     *      __unset:  销毁属性

     */

    public function __unset($key) {

        unset($this->ary[$key]);             //     直接销毁属性key

    }

     

     

    查看全部
  • class Car {                         //    定义一个类Car

        public $speed = 0;   //  定义类中的一个属性$speed
    
        public function speedUp() {         //    定义类中的一个方法speedUp
             $this->speed += 10;            //    使用$this代表当前类,并使用$this->speed来在该类的方法中调用该类的属性
             return $this->speed;           //    类Car的方法Speed是一个函数,他返回当前类的属性speed的值
        }
    }
    
    class Truck extends Car {               //    定义一个类Truck继承类Car
        public function speedUp() {         //    在子类中重写父类中已有的方法speedUp
            $this->speed = parent::speedUp() + 50;        //    在子类的方法中调用父类的方法
            return $this->speed;            //    返回值是子类Truck继承父类的属性speed
         }
    }
    
    $car = new Truck();     //    声明一个对象car,该对象是类Truck的一个实例
    $car->speedUp();        //    调用对象的方法speedUp(),将在类Truck中寻找方法
    echo $car->speed;       //    打印出对象的属性speed
        
    重点1
    使用parent::来调用子类中与父类重名的方法
    查看全部
  • <?php

    //定义一个Car类并实例化一个对象

    class Car {

        public $name = "布加迪威龙";    

        public $money = 2000;//定义属性

        

        

        public function getInfo() {        

            echo "品牌名是:".$this->name."<br>价值是:".$this->money;

         }

    }


    $car = new car();

    $car->getInfo();

    ?>

    查看全部
  • <?php

    $fruit=array('苹果','香蕉','菠萝');

    foreach($fruit as $key=>$value){

        echo '<br>第'.$key.'值是:'.$value;

    }


    ?>

    一个点都不可以少

    查看全部
  • $arr=array()
    查看全部
    0 采集 收起 来源:PHP数组定义

    2021-02-13

  • 前页为$page,每页显示$n条数据,那么m为当前页前面所有的数据,即$m = ($page-1) * $n

    <?php

    //连接数据库

    mysql_connect('127.0.0.1', 'code1', '');

    mysql_select_db('code1');

    mysql_query("set names 'utf8'");

    $page = 2;

    $pagesize = 2;//预设翻页参数

    //在下两行构建分页查询

    $offset = ($page - 1) * $pagesize;

    $sql = "select * from user limit $offset, $pagesize";

    //获取翻页数据

    $result = mysql_query($sql);

    $data = array();

    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {

        $data[] = $row;

    }

    echo '<pre>';

    print_r($data);

    echo '</pre>';


    查看全部
  • 获取数据集中的一行数据,最常用的是mysql_fetch_array

    //连接数据库

    mysql_connect('127.0.0.1', 'code1', '');

    mysql_select_db('code1');

    mysql_query("set names 'utf8'");

    //数据预处理 防止查询不到数据

    mysql_query("insert into user(name, age, class) values('王二', 19, '高三五班')");

    //进行数据查询

    $sql = "select * from user limit 1";

    $result = mysql_query($sql);

    $row = mysql_fetch_array($result);//在这里获取一行数据

    echo '<pre>';

    print_r($row);

    echo '</pre>';

    //使用mysql_fetch_array函数获取一行数据,并将他赋值到$row变量中,以便于后面输出。

    查看全部
  • 插入数据其实也是通过执行一个sql语句来实现,通常数据都是存储在变量或者数组中,因此sql语句需要先进行字符串拼接得到。

    $name = '李四';
    $age = 18;
    $class = '高三一班';
    $sql = "insert into user(name, age, class) values('$name', '$age', '$class')";
    mysql_query($sql); //执行插入语句


    查看全部
  • PHP要对数据库进行操作,首先要做的是与数据库建立连接,通常我们使用mysql_connect函数进行数据库连接,该函数需要指定数据库的地址,用户名及密码。

    $host = 'localhost';
    $user = 'code1';
    $pass = '';
    $link = mysql_connect($host, $user, $pass);

    PHP连接数据库的方式类似于直接在命令行下通过进行连接,类似:mysql -hlocalhost -ucode1 -p,当连接成功以后,我们需要选择一个操作的数据库,通过mysql_select_db函数来选择数据库。

    mysql_select_db('code1');

    通常我们会先设置一下当前连接使用的字符编码,一般的我们会使用utf8编码。

    mysql_query("set names 'utf8'");

    通过上面的步骤,我们就与数据库建立了连接,可以进行数据操作了。


    查看全部
  • //创建可抛出一个异常的函数
    function checkNum($number){
        if($number>1){
            throw new Exception("异常提示-数字必须小于等于1");
        }
        return true;
    }


    <?php

    $filename = 'test.txt';

    try {

        if (!file_exists($filename)) {

          throw new Exception('文件不存在');

        }

    } catch(Exception $e) {

        echo $e->getMessage();

    }


    查看全部

举报

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

微信扫码,参与3人拼团

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

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