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.\n";
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>

PHP基础知识总结(三) 流程控制、函数、类对象和数据库的更多相关文章

  1. ASP.NET Core 基础知识(三) Program.cs类

    ASP.NET Framework应用程序是严重依赖于IIS的,System.Web 中有很多方法都是直接调用的 IIS API,并且它还是驻留在IIS进程中的.而 ASP.NET Core 的运行则 ...

  2. PHP面试 PHP基础知识 四(流程控制)

    流程控制 PHP遍历数组的三种方式及各自的区别 三种方式:使用for循环.使用foreach循环.使用while.list().each()组合循环 区别:foe循环只能遍历索引数组,foeach可以 ...

  3. php基础知识(三)---常用函数--2017-04-16

    常用函数如下:(红色为重点) 1.取字符串的长度 echo strlen("hello"); 2.echo strcmp("字符串1","字符串2&q ...

  4. 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结

    053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...

  5. [SQL] SQL 基础知识梳理(六)- 函数、谓词、CASE 表达式

    SQL 基础知识梳理(六)-  函数.谓词.CASE 表达式 目录 函数 谓词 CASE 表达式 一.函数 1.函数:输入某一值得到相应输出结果的功能,输入值称为“参数”,输出值称为“返回值”. 2. ...

  6. Greenplum入门——基础知识、安装、常用函数

    Greenplum入门——基础知识.安装.常用函数 2017年10月08日 22:03:09 在咖啡里溺水的鱼 阅读数:8709    版权声明:本文为博主原创,允许非商业性质转载但请注明原作者和出处 ...

  7. 047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用

    047 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 09 嵌套while循环应用 本文知识点:嵌套while循环应用 什么是循环嵌套? 什么是循环嵌套? ...

  8. 045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围

    045 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 07 for循环应用及局部变量作用范围 本文知识点:for循环应用及局部变量作用范围 for循环 w ...

  9. 040 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 02 while循环的执行流程

    040 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 02 while循环的执行流程 本文知识点:while循环的执行流程 三种循环结构中的第一种--wh ...

随机推荐

  1. Oil Deposits( hdu1241

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82828#problem/L Oil Deposits Time Limit:1000MS ...

  2. Linux 下查看操作系统信息

    1.uname -a  可显示电脑以及操作系统的相关信息. 2.输入"cat /proc/version",说明正在运行的内核版本. 3.输入"cat /etc/issu ...

  3. QT中用QStettings生成INI文件来记录QFileDialog::getOpenFileName上次的打开路径

    QSettings setting("./Setting.ini", QSettings::IniFormat); //QSettings能记录一些程序中的信息,下次再打开时可以读 ...

  4. springboot 导出excel

    依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</ ...

  5. 用 Flask 来写个轻博客 (22) — 实现博客文章的添加和编辑页面

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 新建表单 新建视图函数 新建模板 在博客文章页面添加 New 和 Ed ...

  6. 通过注册表修改IE的Internet选项

    Internet Explorer 安全区域设置存储在以下注册表子项下面: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\I ...

  7. python3反转列表的三种方式

    1.内建函数 reversed() li = [1,2,3,4,5,6] a = list(reversed(li)) print(a) 注意:reversed()函数返回的是一个迭代器,而不是一个L ...

  8. js中的attributes和Attribute的用法和区别。

    一:Attribute的几种用法和含义(attributes和Attribute都是用来操作属性的) getAttribute:获取某一个属性的值: setAttribute:建立一个属性,并同时给属 ...

  9. java反射(三)--反射与操作类

    一.反射与操作类 在反射机制的处理过程之中不仅仅只是一个实例化对象的处理操作,更多的情况下还有类的组成的操作,任何一个类的基本组成结构:父类(父接口),包,属性,方法(构造方法,普通方法)--获取类的 ...

  10. javaIO流(五)--对象序列化

    一.序列化概念 几乎只要是我们的java开发,就一定会存在有序列化的概念,而正是有序列化的概念逐步发展,慢慢也有了更多的系列化的标准.--所谓的对象序列化指的是将内存中保存的对象,以二进制数据流的形式 ...