美文网首页
PHP基础学习笔记1——《十天学会PHP》网易云课堂

PHP基础学习笔记1——《十天学会PHP》网易云课堂

作者: 芒果芭乐 | 来源:发表于2018-08-22 19:01 被阅读0次

    1、第一个PHP程序

    PHP的基本格式

    <?php   ###php边界符
    echo "hello world";#内容
    ?>
    

    php行末尾都要有分号";"。
    注释:

    <?php
    echo "hello world";
    #这是一个单行注释格式
    //这也是一个单行注释格式
    /*
    这是多行注释格式
    */
    ?>
    

    2、php中的变量

    php中变量以"$"开头,命名规则跟perl差不多
    php中不同的数据类型:不同的数据类型数据都是储存在变量"$"中的,不像perl,不同的数据类型的变量开头不同

    int:$a=1;
    float:$a=1.5;
    布尔值:ture;
    字符串:"string$a";'string$a';#单引号不考虑是否有变量,双引号会识别变量
    数组:$a=[1,2,3,[1,2,3,44]]; $a=array(1,2,3);
    对象:$a=new stdClass;#通过new得到一个对象,对象的理解比较难
    null
    

    var_dump()函数可以打印变量的信息,确认变量的数据类型

    3、数组

    php中的数组是包含“键+值”一种类型

    <?php
    $arr=[1,2,3,[4,5,6]];
    var_dump($arr);   # 输出:array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> array(3) { [0]=> int(4) [1]=> int(5) [2]=> int(6) } }
    ?>
    

    上面的是索引数组,键由程序自动定义
    关联数组的键由用户自己定义

    <?php
    $arr=[
            'a'=>1,
            'b'=>2,
            'c'=>3,
            ];
    var_dump($arr);# 输出array(3) { ["a"]=> int(1) ["b"]=> int(2) ["c"]=> int(3) }
    ?>
    

    数组的增改与perl中的差不多,查一般使用var_dum()或echo函数,删一般使用unset()函数

    4、数据的发送与接收

    • POST
      客户端提交数据
      html数据的提交需要在form标签内
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset='utf-8'/>
      </head>
      <body>
        <form action="formsave.php" method='post'> <!--通过post方法将数据提交给formsave.php。通过post方法传递的数据,会将数据内容储存到$_POST这个预定义变量中,可以通过键访问得到-->
          <input type='text' name='aa'/> <!--表单类型与名,以便php中的接收-->
          <input type='text' name='bb'/>
          <input type='submit' value='提交' /> <!--提交按钮-->
        </form>
      </body>
    </html>
    

    服务端打印,$_POST是一个数组

    <?php
    $aa=$_POST['aa'];
    $bb=$_POST['bb'];
    echo$aa;
    echo $bb;
    ?>
    
    • GET
      GET与POST差不多,具体查手册

    5、PHP中的运算符

    PHP中运算符与perl有一些差异,但不是非常的多,具体查看手册

    6、函数

    定义函数

    <?php
    function name( $nn,$yy){ #自定义一个函数,$nn和$yy是函数的参数
      echo 123;
      $c=$nn+$yy;
      echo $c;
    }
    ?>
    

    在函数中得到的变量是局部变量,在函数外不能调用,可以通过return()将它们返回变成全局变量
    调用函数

    name(1,2);#结果是打印123和3
    

    7、类与对象

    每个类的定义都以关键字 class 开头,后面跟着类名,后面跟着一对花括号,里面包含有类的属性与方法的定义。

    <?php
    class SimpleClass
    {
        public $var = 'a default value';
        public function displayVar() {
            echo $this->var;  #$this是一个伪变量,可以在类中引用类里面的方法的时候时候,而在类外去引用一个类的方法,需要先实例化为对象才能引用。
        }
    }
    ?> 
    

    要创建一个类的实例,必须使用 new 关键字

    <?php
    $instance = new SimpleClass();
    ?> 
    

    调用对象的方法和属性。类的变量成员叫做"属性",或者叫"字段"、"特征",在本文档统一称为"属性"。

    <?php
    class SimpleClass
    {
        public $var = 'a default value';
        public function displayVar() {
            echo $this->var; 
      }
    $instance = new SimpleClass();
    $instance->displayVar();#调用类里面的方法
    $instance->var;#调用类里面的变量,不需要$符号
    }
    ?> 
    

    传参:

    <?php
    class SimpleClass
    {
        public $s1;
        public $s2;
        public $var = 'a default value';
        public function __construct($a,$b){#构造函数:具有构造函数的类会在每次创建新对象时先调用此方法,所以非常适合在使用对象之前做一些初始化工作
            $this->s1=$a;#将参数值赋予类属性
            $this->s2=$b;
            }
    
    $instance = new SimpleClass('a','b');#实例化对象,且输入参数
    }
    ?>
    

    8、包含文件

    包含外部文件,通过include或require包含了外部的php文件可以调用其他php文件内的属性方法。

    vars.php
    <?php
    $color = 'green';
    $fruit = 'apple';
    ?>
    
    test.php
    <?php
    echo "A $color $fruit"; // A
    include 'vars.php';
    echo "A $color $fruit"; // A green apple
    ?> 
    

    include_once和 include语句类似,唯一区别是如果该文件中已经被包含过,则不会再次包含。如同此语句名字暗示的那样,只会包含一次。
    require和include几乎一样,只在出现错误时有差别

    9、通过php执行mysql语句

    mysqli_query — 对数据库执行一次查询,同样可以执行其他类型的语句(查询、删除等)

    <?php
    $host='127.0.0.1';#数据库所在主机地址
    $user='root';#用户名
    $pwd='root';#用户密码
    $dbname='php10';#所要连接的数据库名称
    
    $db=new mysqli($host,$user,$pwd,$dbname);
    #mysqli需要有四个参数:主机地址,用户名,用户密码,数据库。这个语句可以连接到数据库
    
    if($db->connect_errno<>0)
    {#在连接数据库失败时提示
      echo "连接失败";
      echo $db->connect_error;
    }
     $db->query("SET NAMES UTF8");
    #设置数据传输编码为UTF-8,没有设置很容易出现乱码问题
    
    $content=1;
    $user="user";
    $intime=2131412;
    $db->query( "INSERT INTO msg(content,user,intime) VALUES('{$content}','{$use}','{$intime}')" );
    #将数据插入数据库中,数据可以是变量
    
    $is = $db->query($sql);
    if($is==true){#判断是否插入成功
      echo '插入成功';
    }else{
      echo '插入失败';
    }
    ?>
    

    10、从mysql获得数据
    使用query调用mysql语句进行查询并从返回值取得结果
    mysqli_result是mysqli获得的结果集,是一个类。当运行失败时,只会得到一个false的布尔值

    $sql="SELECT * FROM msg ORDER BY id DESC";
    $mysqli_result=$db->query($sql);#$db是实例化的mysqli
    $row=$mysqli_result->fetch_array(MYSQLI_ASSOC) ;
    #fetch_array是mysqli类中的方法,可以返回数组,可以取出一个结果。不断调用fetch_array()方法会依次显示其他的记录,如果没有记录就会返回null,可以通过while循环取出所有记录。MYSQLI_ASSOC表示不取出数组索引。
    echo $row['id'];#根据数组的索引调用数据
    
    #使用while取出所有的数据到二维数组
    $rows=[];
    while($row = $mysqli_result -> fetch_array(MYSQLI_ASSOC) ){
        $rows[ ]=$row;
    #表示自动生成二维数组的键。也可以指定:$rows[$row['id']]表示用$row['id']作为键/索引
    }
    
    #gbook.php
    <?php
    $host='127.0.0.1';
    $user='root';
    $pwd='root';
    $dbname='php10';
    $db=new mysqli($host,$user,$pwd,$dbname);
    
    if($db->connect_errno<>0)
    {
      echo "连接失败";
      echo $db->connect_error;
    }
     $db->query("SET NAMES UTF8");
    
    $sql="SELECT * FROM msg ORDER BY id DESC";
    $mysqli_result=$db->query($sql);
    if($mysqli_result ===false){
      echo "SQL错误";
      exit;
    }
    $rows=[];
    while($row = $mysqli_result -> fetch_array(MYSQLI_ASSOC) ){
        $rows[ ]=$row;
    }
    ?>
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="UTF-8"/>
        <title>留言板</title>
        <style>
        .wrap{
          width:600px;
          margin:0px auto;
         }
        .add{overflow:hidden;}
        .add .content{
          width:598px;
          margin:0;
          padding:0;
        }
        .add .user{
          float:left;
        }
        .add .bth{
          float:right;
        }
        .msg{
          margin:20px 0px;
          background:#ccc;
          padding:5px;
         }
        .msg .info{
          overflow:hidden;
         }
        .msg.user{
          float:left;
          color:blue;
        }
        .msg .time{
          float:right;
          color:#999;
        }
        .msg .content{
          width:100%;
         }
        </style>
      </head>
      <body>
        <div class='wrap'>
          <div class='add'>
          <form action="save.php" method="post">
            <textarea class='content' cols='50' rows='5'></testarea>
            <input class='user' type='type'/>
            <input class='btn' type='submit' value='发表留言'/>
          </form>
          </div>
          <?php
            foreach($rows as $row){
          ?>
          <div class='content'>
            留言内容
          </div>
        </div>
       <div class='msg'>
        <div class='info'>
          <span class='user'><?php echo $row['user'];?></span>
          <span class='time'><?php echo date("Y-m-d H:i:s", $row['intime']);?></span>
         </div>
        <div class='content'>
          <?php echo $row['content'];?>
        </div>
      </div>
     <?php
        }
     ?>
    </div>
    </body>
    </html>
    

    实战代码

    #input.php
    class input{
        function post($content){
            if($content == ''){
                return false;
              }
        $n=['张三','李四','王五'];
        foreach($n as $name){
            if($content == $name){
                return false;
                }
          }
      return true;
    }
    
    #connect.php,预先设定数据库链接参数和数据传输编码
    <?php
    $host='127.0.0.1';
    $user='root';
    $pwd='root';
    $dbname='php10';
    
    $db=new mysqli($host,$user,$pwd,$dbname);
    if($db->connect_errno<>0)
    {
        die("连接数据库失败";)
    }
    
     $db->query("SET NAMES UTF8");#设定数据传输编码方式
    
    # save.php
    <?php
    include('input.php');
    include('connect.php');
    
    $content = $_POST['content'];
    $user = $_POST['user'];
    
    $input = new input();
    
    #调用函数,检查留言内容和留言人信息
    $is = $input->post($content);
    if($is==false){
     die("留言内容不正确");
    }
    $is = $input->post($user);
    if($is==false){
     die("留言人信息不正确");
    }
    
    #将数据输入库中
    $time =time();
    $sql=query( "INSERT INTO msg(content,user,intime) VALUES('{$content}','{$user}','{$time}')" );
    $is = $db->query($sql);
    #var_dumb($is);
    header("location:gbook.php");#跳转到gbook.php
    ?>
    

    相关文章

      网友评论

          本文标题:PHP基础学习笔记1——《十天学会PHP》网易云课堂

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