PHP基础
是什么?
服务端脚本语言,专门为 web 而设计,在 HTML 页面中,可以嵌入 PHP 代码,代码在每次页面被访问时执行,PHP代码将在web服务器中被解释并且生成 HTML 或者访问者看到的其他输出。
能做什么?
- 生成动态页面
- 操作服务器上的文件
- 操作数据库
- 接收表单数据
- 数据加密
- 输出多种内容,HTML,图像,PDF。
使用
- 服务器端
创建.php文件,长传到web目录中,服务器会自动解析。
写法
<?php
//PHP代码
?>
- PHP语句以分号结尾
- PHP代码块的关闭标签
?>
自动表明分号,所以PHP代码块的最后一行不必用分号
注释
三种:两种单行,一种多行
//单行注释
# 单行注释
/*多行注释*/
大小写敏感?
除了变量,其他的都不敏感
常量
- 无法改变
- 以字符或下划线开头(没有$)
- 自动全局
- 定义:
- define(参数1, 参数2, 参数3(可选));
- 参数1-->常量名,参数2-->常量的值,参数3-->可选,是否对大小写敏感,默认false--即对大小写敏感
魔术常量(8个)
概念:它们的值随着它们在代码中的位置改变而改变
注:前后都是双下划线
__DIR__
,脚本文件所在目录
__LINE__
,文件中的当前行号
__FUNCTION__
,函数名称
__FILE__
,,文件的完整路径和文件名,用在被包含文件中,则返回被包含的文件名,总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径)
__CLASS__
,类的名称
__TRAIT__
,Trait 的名字
__METHOD__
,类的方法名
__NAMESPACE__
,当前命名空间的名称
预定义常量
PHP 的内核中已经定义的常量,包含 PHP、Zend 引擎和 SAPI 模块
PHP_VERSION
(string)
PHP_OS
(string)
DEFAULT_INCLUDE_PATH
(string)
- ...
变量
- 以$开头,后面是变量名
- 变量名以字母或下划线开头(不能用数字开头)
- 只能包含字母、数字、下划线(A-z,0-9,_)
-
变量大小写敏感
-
创建变量
- 没有专门的语句创建变量
- 首次赋值时被创建
- 不必声明变量的类型(PHP类型比较松散)
- PHP会根据变量的值自动转换为正确的数据类型
-
变量作用域
- 用 static 关键字保留函数内的局部变量
- 为了防止函数内的局部标量在函数执行后被销毁
- 用 static 保留该变量
输出语句
echo
和print
- 两者差异:
- echo 能够输出一个以上字符
- print 只能输出一个字符串,并且始终返回 1
数据类型
- 查看变量的数据类型
- var_dump();
- var_dump($x);
- 字符串
- 整数
- 浮点数
- 小数点或者指数形式的数字
- $x = 10.3;
- $y = 2.4e3;
- 逻辑
-
数组
- $cars = array("Volvo", "BMW", "SAAB");
- 对象
- 存储数据和如何处理数据的数据类型
- 先声明对象的类(包含属性和方法的结构)
- 对象类中定义数据类型,然后在该类的实例中使用此数据类型
- Null
- Null 数据类型的唯一可能的值是 null
- 可以通过把变量设置成 null ,来清空变量
字符串函数
- 字符串长度
- 检索指定字符和文本
- 匹配的话,返回首个匹配的字符串位置
- 没有匹配的话,返回 false
- strpos("hello world", "world");
运算符
- 算术
- 赋值
- 字符串
- 递增递减
- 比较
- 逻辑
- 数组运算(用于比较数组)
- if/else
- switch
switch (expression)
{
case label1:
code to be executed if expression = label1;
break;
case label2:
code to be executed if expression = label2;
break;
default:
code to be executed
if expression is different
from both label1 and label2;
}
1. 对表达式运算
2. 将表达式的值与 case 进行比较
3. 匹配的话,执行
4. 都没有匹配,执行 default
函数
数组
- 创建数组:
array()
- 三种数据类型:
- 索引数组:带有数字索引
- 关联数组:指定键的数组
- 多维数组
-
数组长度:count();
- 索引数组
- 创建方法(两种):
-
- 自动分配:
$cars=array("Volvo","BMW","SAAB");
- 手动指定:```$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="SAAB";
- 关联数组:
- 遍历数组:
- 遍历索引数组
for 方法
- 遍历关联数组
foreach 方法
- 数组排序
超全局变量
在全部作用域内始终可用的内置变量
PHP中有许多超全局的预定义变量
- $GLOBALS
- $_SERVER
- $_REQUEST
- $_POST
- $_GET
- $_FILES
- $_ENV
- $_COOKIE
-
$_SESSION
- $GLOBALS — 引用全局作用域中可用的全部变量
- $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键
- $GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量
- $_SERVER
- $_REQUEST
include 和 require
include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。
PHP操作MySQL
连接MySQL
通过 mysql_connect();
函数
mysql_connect(servername,username,password);
- 一般只需要这三个参数:
- servername 可选。规定要连接的服务器。默认是 "localhost:3306"。
- username 可选。规定登录所使用的用户名。默认值是拥有服务器进程的用户的名称。
- password 可选。规定登录所用的密码。默认是 ""。
结束连接
脚本一结束,就会关闭连接。
如需提前关闭连接,请使用mysql_close()
函数。
$con = mysql_connect("localhost","peter","abc123");
mysql_close($con);
mysql_query
mysql_query(query,connection)
:执行一条 MySQL 查询
- query 必需。规定要发送的 SQL 查询。注释:查询字符串不应以分号结束。
- connection 可选。规定 SQL 连接标识符。如果未规定,则使用上一个打开的连接。
- 注:如果没有打开的连接,本函数会尝试无参数调用
mysql_connect()
函数来建立一个连接并使用之。