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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
学习人数
综合评分8.90
570人评价 查看评价
9.3 内容实用
8.8 简洁易懂
8.6 逻辑清晰
  • <?php

    $user = array(

        'name' => 'spark1985',

        'email' => 'spark@imooc.com',

        'mobile' => '13312345678'

    );

    //进行一般性验证

    if (empty($user)) {

        die('用户信息不能为空');

    }

    if (strlen($user['name']) < 6) {

        die('用户名长度最少为6位');

    }

    //用户名必须为字母、数字与下划线

    if (!preg_match('/^\w+$/i', $user['name'])) {

        die('用户名不合法');

    }

    //验证邮箱格式是否正确

    if (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $user['email'])) {

        die('邮箱不合法');

    }

    //手机号必须为11位数字,且为1开头

    if (!preg_match('/^1\d{10}$/i', $user['mobile'])) {

        die('手机号不合法');

    }

    echo '用户信息验证成功';


    查看全部
  • PCRE库函数中,正则匹配模式使用分隔符与元字符组成,分隔符可以是非数字、非反斜线、非空格的任意字符。经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~),例如:

    /foo bar/
    #^[^0-9]$#
    ~php~

    如果模式中包含分隔符,则分隔符需要使用反斜杠(\)进行转义。

    /http:\/\//

    如果模式中包含较多的分割字符,建议更换其他的字符作为分隔符,也可以采用preg_quote进行转义。

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

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

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


    查看全部
  • 方法的重载通过__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;


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

    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(); //通过静态方法来获得一个实例


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

    查看全部
  • 索引数组是指数组的键是整数的数组,并且键的整数顺序是从0开始

    查看全部
  • $link = mysql_connect($host, $user, $pass);
    mysql_close($link);


    查看全部
  • 对于删除与更新操作,可以通过mysql_affected_rows函数来获取更新过的数据行数,如果数据没有变化,则结果为0。

    $sql = "update user set name = '曹操' where id=2 limit 1";
    if (mysql_query($sql)) {
        echo mysql_affected_rows();
    }


    查看全部
  • 增加start方法,使他能够调用受保护的方法speedUp实现加速10

    查看全部
  • 一般情况下常说的LAMP架构指的是:Linux、Apache、Mysql、PHP

    查看全部
  • public:公开的。

    protected:受保护的。

    private:私有的

    查看全部
  • 索引数组是指数组的键是整数的数组

    查看全部
  • $subject = "my email is spark@imooc.com";

    //在这里补充代码,实现正则匹配,并输出邮箱地址

    $patten = '/[\w\-]+@\w+.\w+/';

    preg_match($patten,$subject,$matches);

    echo $matches[0];


    查看全部
  • $p = '/\d*\-\d*/';

    $str = "我的电话是010-12345678";

    preg_match($p, $str, $match);

    echo $match[0];


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

    2018-11-14

  • PHP有多个函数可以获取数据集中的一行数据,最常用的是mysql_fetch_array,可以通过设定参数来更改行数据的下标,默认的会包含数字索引的下标以及字段名的关联索引下标。

    $sql = "select * from user limit 1";
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);


    查看全部

举报

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

微信扫码,参与3人拼团

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

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