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>