PHP

作者: _Enco_ | 来源:发表于2017-08-24 10:12 被阅读0次

    PHP

    • 超文本预处理器
    • 非常适合web开发(脚本语言)
    • 运行在服务器端
    <?php
      echo 'hello world';
    ?>
    

    基本语法

    • 文件后缀.php
    • 如何嵌入到HTML页面(使用php标签)
    <?php
      echo 'hello world';
    ?>
    
    • php代码可以嵌入到HTML任何位置
    • php里面的语句是以分号结束(必须)
    • 路径和文件名称不能出现中文
    • 两种运行方式:1.虚拟路径(网址)的方式;2.命令行的方式;
      2.命令行的方式
    <? php 
      for($I = 1;$I <10;$I++){
        echo $I . PHP_EOL;
    }
    ?>
    
    • php输出方式
    echo '输出字符串';
    var_dump(任意类型数据);
    exit(); //该语句执行完成以后,不会再有往下执行;
    

    php变量

    • 变量声明
    $ //$后面跟字母、数字、下划线(、中文)
    $a = 1; //声明了一个整型变量
    $b = 2.03;
    $c = '12\'3';
    
    • 支持可变变量
    $var1 = 'name';
    $name = '123';
    echo $$var1; // 打印 123 
    
    • 变量引用
    $username1 = 'enco';
    $username2 = 'www';
    $username1 = $username2;
    echo $username1; // 打印www
    
    • 地址引用
    $username1 = 'enco';
    $username2 = 'www';
    $username1 = &$username2; //保存username2的空间地址
    $username2 = 'encowww';
    echo $username1; // 打印 encowww
    
    • 变量名称支持中文
    • echo输出的时候会去解析字符串内的变量名
    $name = 'enco';
    echo "$name是个人";//此时打印的是 $name是个人 这个变量的值,没有这个变量,报错
    
    $name = 'enco';
    echo "{$name}是个人"; //使用打括号将变量扩起来,防止污染全局
    
    • header('Content-Type:text/html;charset=UTF-8') (php规避中文乱码)

    三种注释方式

    • /**/
    • //

    变量类型

    $str = '字符串';
    //单双引号的区别
    //单引号里面所有内容看作字符串
    //双引号会去分析字符串里面是否有变量
    
    $name = '安可';
    $str = '$name是班长';
    echo $str;
    $str1 = "$name是班长"; //报错
    $str1 = "{$name}是班长";
    $str2 = $name . '是班长';
    
    • 般情况下推荐使用单引号

    • . 是字符串连接

    • 数组

    $arr = ['enco','www'];
    echo $arr[1];
    var_dump($arr); //打印数组
    
    • 关联数组
    $arr = array('name'=>'enco','age'=>18);
    var_dump($arr);
    echo $arr['name'] . '年龄是' . $arr['age'];
    
    • 多维数组
    $student = [
        array('name'=>'enco','age'=>18),
        array('name'=>'enco','age'=>18),
        array('name'=>'enco','age'=>18)
    ]
    $student[2]['name'];
    foreach($student as $key=>$value){
      echo ($key+1) . $value['name'] . '年龄是' . $value['age'] . '<br>';
    }
    

    获得变量的类型

    • gettype
    $a = 1;
    echo gettype($a);
    $b = 20.03;
    echo gettype($b);//double
    echo GETTYPE($b);//double
    

    注意:自定义的变量名区分大小写
    内置的关键字或者函数名称不区分大小写

    • 判断是否是指定类型
    $arr = [];
    var_dump(is_array($arr));
    

    数据库操作

    • 插入
    $db = new mysql('localhost','root','root','database');
    $db->query('SET NAMES UTF8');
    // INSERT INTO表名(字段1,字段2,字段3.。。。)VALUES(12,'信息1','信息1');
    $sql = 'INSERT INTO members(username,passwd,tel,retimes)VALUES('enco','anke123321','15528189938','2017-8-25 10:30:20')';
    $db->query($sql);
    $db->close();
    
    • 查询
    $db = new mysql('localhost','root','root','database');
    $db->query('SET NAMES UTF8');
    // SELECT 字段1,字段2.。。。。FROM 表名 WHERE 判断条件(用AND连接);
    $sql = 'SELECT id, username,passwd FROM member WHERE username = "'.$_POST['username'].'" ';
    $result = $db->query($sql);
    $row = $result->fetch_array(MYSQLI_ASSOC);
    if($row['id']){
        echo '账号正确';
    }else{
        echo '你输入的账号不存在';
        exit;
    }
    if($row['passwd'] == md5($_POST['passwd'])){
        echo '密码正确';
    }else{
        echo '密码错误';
        exit;
    }
    $db->close();
    
    
    • 取出数据库的总数量
    SELECT count(*) AS nums FROM 表名 WHERE 判断条件
    
    • 引用、包含其他php文件
    require '相对路径'; // 如果文件不存在,直接返回致命错误,不会执行之后的程序
    include '相对路径'; // 如果文件不存在,返回警告错误,会执行之后的代码
    require_once '相对路径'; //如果之前有引用这个路径文件,不会再次引用
    
    • 删除
    DELETE(没有字段) FROM WHERE (AND连接)
    
    • 修改
    UPDATE 表名 SET 字段1 = ‘新的值’ , 字段2 = ‘新的值’  WHERE 判断条件;
    

    上传文件

    • 上传文件时,method必须是post
    <form enctype = "multipart/form-data"> // 表单信息编码 
    </form>
    
    • 存储上传文件在服务器
    <?php
      der_dump($_FILES);
      move_upload_file($_FILES['img']['tmp_name'],'存放目录路径' . $_FILES['img']['name']);
    ?>
    

    查询LIKE

    • LIKE “%关键词%”;
    'SELECT * FROM 表名 WHERE 字段 LIKE “%关键词%”';
    

    %关键词% : 包含关键词的
    %关键词 : 以关键词结束的
    关键词% : 以关键词开始的

    查询结果排序

    SELECT FROM WHERE ORDER BY id ASC
    

    ORDER BY 字段 ARC 按照字段升序排列
    ORDER BY 字段 DESC 按照字段降序排列
    ORDER BY 字段1 ARC,字段2 ARC

    PHP 的面向对象

    class Person {
      public $name;
      public $age;
      //定义方法
      //构造方法
      function  __construct($name,$age){
        $this->name = $name;
        $this->age = $age;
      }
      function say(){
        echo '我是'. $this->name;
      }
      //析构方法(自动执行)
      function __destruct(){
        echo '完成';
      }
    }
    $person1 = new Person('enco',18);
    $person1->say();
    $person1->name;
    
    • unset () 方法,删掉响应的元素
    unset($_POST('id'));
    

    session 和 cookie

    • session 存储在服务器上面的,这样子信息更安全
    • 要在公用文件里面写 $_SESSION || session_start();
    • 要使用session时必须写session_start();因为默认session未开启
    $_SESSION['username'] = 要传的值;
    //跳转页面
    header('Location:./跳转页面相对路径');
    
    • cookie 存储在本地的
    setcookie('username',要传的值,time()+30*24*60*60);//最后传的是cookie保存的有效时间
    setcookie('username',要传的值,time()+30*24*60*60);
    
    $_COOKIE['username']; //获取cookie值
    

    php的类的继承

    • parent:: (js中为super())
    class DB {
      pretected $dblink;
      public function __construct ($config) {
          $this->dblink = new mysqli($config['host'],$config['user'],$config['passed'],$config['dbname']);
          $this->blink->query('SET NAMES UTF8');  
      }
    class news extends DB {
        function __construct ($config){
          parent::__construct ($config);
          var_dump($this->dblink);
      }
    }
    $config = array('host'=>'localhost','user'=>'root','passwd'=>'168168','dbname'=>'study');
    $mynews = new news($config);
    }
    

    访问权限控制

    • public 是指外部可以直接访问的属性或者方法
    • protected 是指外部不可以直接访问的属性或者方法,子类可以访问
    • provate 只能自己内部使用的属性或者方法,包括子类也不能使用

    php 函数定义

    • 函数默认值
    function add($a=0;$b=0){
      return $a+$b;
    }
    
    • 函数不能重复定义

    php 常见方法

    • 表单的数据处理
    • 转义函数 addslashes
    • 转实体字符函数 htmlentities(); htmlspecialchars 反转 htmlentitles_decode();
    • 富文本编辑器
    • trim() 清除空格

    SESSION 的销毁

    unset($_SESSION['id']);
    session_destroy();
    

    define 定义一个常量

    define('NAME','ecno');
    define('NAME','ecno22222');
    echo NAME; // 打印enco
    

    定义的常量不能被修改

    • 检查常量是否已经被定义
    if(defined('NAME')){
      echo '常量已经被定义';
    }
    

    and or oxr 的优先级比等号低

    $f = 1 oxr 0;
    echo $f; // 这里$f = 1;
    $f = (1 oxr 0);
    echo $f; // 这里true;
    

    SELECT n.cid, n.ccid, n.title, n.realname, c.cname FROM news AS n
    LEFT JOIN category AS c
    ON n.ccid = c.id
    WHERE n.id > 3

    相关文章

      网友评论

          本文标题:PHP

          本文链接:https://www.haomeiwen.com/subject/zhvsdxtx.html