PHP基础知识总结(三) 流程控制、函数、类对象和数据库

PHP基础语法

1、流程控制

  条件语句:if  elseif  else / switch

if($a == 1){

   ……

} elseif ($a == 2){

   ……

}  else{

   ……

}

       循环语句:for  foreach

for ($i = 1; $i <= 10; $i++) {
    echo $i;
}

foreach($arr as $key => $value){   //一维数组循环键和值
  ……      
}

foreach($arr as $key => $value){     //二维数组循环键和值
     foreach($value as $value2){        //可以在循环中直接取值
        ……
     }        
}

 2、函数:

      一次写成,反复调用。

   定义用function:

function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Example function.
";
    return $retval;
}

        foo($a1,$a2,……,$an);      //在php中,名称() ==>函数

        有很多内置函数,比如var_dump()

   局部变量:函数内定义的变量

        全局变量:函数外定义的变量

3、类与对象

  类是图纸,对象是照着图纸盖出来的房子。

  面向对象的方法:是为了更大规模的协作。

<?php

class name{
    public $a1 = 0;
    public $a2 = 1;

    public function __construct(){  //魔术方法,不带参数的构造函数,自己会执行,可以不写。
        //初始值
    }

    public function s1(){
        $this -> s2();             //用$this来调用兄弟姐妹
    }

    public function s2(){
        echo $this -> a1;
    }
}

$name = new name();               //类实例化
echo $name -> a2 . "<br/>";      //调用类属性,"->"是指向运算符,后面属性不用$符号
$name -> s2();                    //调用类方法


class name2{
    public $a1 = 0;
    public $a2 = 1;

    public function __construct($a, $b){   //带参数的构造函数
        $this->a1 = $a;
        $this->a2 = $b;
    }

    public function s1(){
        $this -> s2();
    }

    public function s2(){
        echo $this -> a1;
    }
}

/**/
$name2 = new name2('a', 'b');
echo "<br/>" ;
$name2 -> s1();

?>

       魔术方法,有__construct(构造函数)、__destruct(析构函数)等。PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法。

4、包含文件

  一个项目中有很多个php文件,一个php文件要引用另外的php文件中内容,要用到“包含文件”。

  include:包含并运行指定文件

       include_once:只包含一次

    require / require_once

5、数据库

  SQL语法可以通过菜鸟教程学习:http://www.runoob.com/mysql/mysql-tutorial.html

    使用Mysqli API来处理数据库的添删改查:mysqli::query,   mysqli_result::fetch_array等。

      添加数据到表中的例子:

<?php

$host = "127.0.0.1";
$user = "root";
$passwd = "zst@123";
$dbname = "php10";    //数据库名称
//连接数据库
$db = new mysqli($host, $user, $passwd, $dbname);   
//判断连接是否成功
if($db->connect_errno <> 0){
    echo "连接数据库失败,";
    echo $db->connect_error;
}

//执行sql
$sql = "insert into msg(content2, intime, user) values('留言',123,'php')";
$a = $db->query($sql);
//执行是否成功
if($a == true){
    echo "执行成功";
}else{
    echo "执行失败";
}
//var_dump($db);

?>

      查询表中的数据到页面上显示的例子:

<?php
    
$host = "127.0.0.1";
$user = "root";
$pwd = "zst@123";
$dbname = "php10";
$db = new mysqli($host, $user, $pwd, $dbname);
if($db->errno <> 0){
    echo "数据库连接失败";
    exit;
}
$sql = "select * from msg where id>15 order by id desc";
$mysqli_result = $db->query($sql);
if($mysqli_result == false){
    echo "查询语句执行失败";
    exit;
}

$rows = [];
while($row = $mysqli_result->fetch_array(MYSQLI_ASSOC)){
    $rows[] = $row;
}
//var_dump($rows);

?>
<html>
    <head>
        <meta charset="UTF-8"/>
        <title>留言本</title>
        <!--<link rel="stylesheet" type="text/css" href="test.css"> -->
        <style type="text/css">
            .wrap{
                width: 800px;
                margin: 0px auto;
            }
            .add{
                overflow:hidden;   <!--消除float-->
            }
            .add .content{
                width: 798px;
                margin: 0px;
                padding: 0px;
            }
            .add .user{
                float: left;
            }
            .add .btn{
                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="messageboard_class.php" method="post">
                    <textarea name="content" class="content" cols="50" rows="5"></textarea>
                    <br/>
                    <input name="user" class="user" type="text"/>
                    <input class="btn" type="submit" value="发表留言"/>
                </form>
            </div>
            <!--查看留言 -->
            <?php
                //设置日期时区,否则会少7小时
                date_default_timezone_set("Asia/Shanghai");
                foreach ($rows as $key => $record) {
                        
            ?>
            <div class="msg">
                <div class="info">
                    <span class="user"><?php echo $record["user"]; ?></span>
                    <span class="time"><?php echo date('Y-m-d H:i:s', $record["intime"]); ?></span>
                </div>    
                <div class="content">
                    <?php echo $record["content"]; ?>
                </div>
            </div>
            <?php
                }
            ?>
        </div>
    </body>
</html>
原文地址:https://www.cnblogs.com/wangle1001986/p/8643289.html