PHP笔记
语法
1. 代码块
php关键字不区分大小写
/* 四种定界符 */ // 标准 <?php // 代码块 ?> // script标记 <script language="php"> // 代码块 </script> /* 短标记 默认不支持该风格, 需要在php配置文件(php.ini)中开启 short_open_tag = On */ <? // 代码块 ?> /* asp风格 默认不支持该风格, 需要在php配置文件(php.ini)中开启 asp_tags = On */ <% // 代码块 %>
2.注释
<?php // 单行注释 # 单行注释 /* 多行注释 */ ?>
3. 输出方法
输出数据 | 参数个数 | 返回值 | |
echo | 只能输出数字、字符串. 对于布尔型,TRUE输出成1, FALSE输出空 | 多个 | 无 |
print() | 只能输出数字、字符串. 对于布尔型,TRUE输出成1, FALSE输出空 | 一个 | 成功返回1,失败返回0 |
print_r() | 输出数组,包括键值, 不包括数据类型 | 一个 | 成功返回1,失败返回0 |
var_dump() | 输出变量及变量的数据类型 | 多个 | 无 |
4.特殊语法
<?php // 条件判断,也可以使用大括号 if(1): // php语句 else: // php语句 endif; // 结束选择分支 ?>
5.变量类型强转
<?php // 将变量b强转为整形 $a = (int)$b; /* 支持的强转类型有: int, bool, float, string, array, object, unset, binary(二进制) */ ?>
变量
1. 定义
<?php //创建变量, $符号标识后面跟的是变量名 $x = 5; $y = 6; // 使用变量 echo $x; // 取变量的地址, 将x变量的地址赋给address $address = &$x; // address与x变量指向同一变量 echo $address; // 销毁变量, 仅销毁变量名 unset($x); // 可变变量 $a = '12345'; $b = 'a'; # 存放变量名 echo $$b; # 相当于$a // 定义常量, 常量名不使用$开头, 布尔值标识是否忽略大小写, 默认为false define('name', 'hujing', true); echo NAME; // 判断常量是否已经定义 defined('name'); ?>
<?php # 变量的数据类型 /* 基本类型: 整形, 浮点数, 布尔型, 字符串 */ // 字符串中, 双引号字符串会将变量名替换, 单引号字符串不会(真正的字符串) $name = '123'; echo '你好, $name'; # 你好, $name echo "你好, $name"; # 你好, 123 echo "$name你好"; # 报错, 认为'name你好'是变量名 echo "{$name}你好"; # 如此甚好 echo "${name}你好"; # 同上 /* 复合类型 数组, 对象 */ /* 特殊类型 NULL 资源类型: 所访问的php外部数据 */ ?>
注意: 在php中'+'只做数字加法, 无法拼接字符串, 拼接字符串使用'.'
2.数组
<?php // 创建一维数组 $arr = array("1", "2"); // 可以任意更改数组下标, 不写的即+1, 下面数组下标为 1,2,5 $arr = array(1=>"1", "2", 5=>"3"); // 数组长度 count($arr); // 创建关联数组(貌似就是字典) $arr = array("a"=>"1", "b"=>"2"); $arr['c'] = '3'; // 遍历关联数组 foreach($arr as $key=>$value){ echo $key.$value; } // 创建多维数组 $arr = array( array("a", 2, 3), array("b", 5, 6) ) ?>
3. 超全局变量
就是任意地方都可以使用都变量
- $GLOBALS: 全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
- $_SERVER: 保存关于报头、路径和脚本位置的信息, 其中包含都信息在下方表格中
- $_REQUEST: 用于收集请求参数,数组, 参数名就是索引
- $_POST: post请求收集参数使用, 数组
- $_GET: get请求收集参数使用, 数组
- $_FILES:
- $_ENV
- $_COOKIE
- $_SESSION
换行符:PHP_EOL
元素/代码 | 描述 |
---|---|
$_SERVER | |
$_SERVER['PHP_SELF'] | 返回当前执行脚本的文件名。 |
$_SERVER['GATEWAY_INTERFACE'] | 返回服务器使用的 CGI 规范的版本。 |
$_SERVER['SERVER_ADDR'] | 返回当前运行脚本所在的服务器的 IP 地址。 |
$_SERVER['SERVER_NAME'] | 返回当前运行脚本所在的服务器的主机名(比如 www.w3school.com.cn)。 |
$_SERVER['SERVER_SOFTWARE'] | 返回服务器标识字符串(比如 Apache/2.2.24)。 |
$_SERVER['SERVER_PROTOCOL'] | 返回请求页面时通信协议的名称和版本(例如,“HTTP/1.0”)。 |
$_SERVER['REQUEST_METHOD'] | 返回访问页面使用的请求方法(例如 POST)。 |
$_SERVER['REQUEST_TIME'] | 返回请求开始时的时间戳(例如 1577687494)。 |
$_SERVER['QUERY_STRING'] | 返回查询字符串,如果是通过查询字符串访问此页面。 |
$_SERVER['HTTP_ACCEPT'] | 返回来自当前请求的请求头。 |
$_SERVER['HTTP_ACCEPT_CHARSET'] | 返回来自当前请求的 Accept_Charset 头( 例如 utf-8,ISO-8859-1) |
$_SERVER['HTTP_HOST'] | 返回来自当前请求的 Host 头。 |
$_SERVER['HTTP_REFERER'] | 返回当前页面的完整 URL(不可靠,因为不是所有用户代理都支持)。 |
$_SERVER['HTTPS'] | 是否通过安全 HTTP 协议查询脚本。 |
$_SERVER['REMOTE_ADDR'] | 返回浏览当前页面的用户的 IP 地址。 |
$_SERVER['REMOTE_HOST'] | 返回浏览当前页面的用户的主机名。 |
$_SERVER['REMOTE_PORT'] | 返回用户机器上连接到 Web 服务器所使用的端口号。 |
$_SERVER['SCRIPT_FILENAME'] | 返回当前执行脚本的绝对路径。 |
$_SERVER['SERVER_ADMIN'] | 该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。 |
$_SERVER['SERVER_PORT'] | Web 服务器使用的端口。默认值为 “80”。 |
$_SERVER['SERVER_SIGNATURE'] | 返回服务器版本和虚拟主机名。 |
$_SERVER['PATH_TRANSLATED'] | 当前脚本所在文件系统(非文档根目录)的基本路径。 |
$_SERVER['SCRIPT_NAME'] | 返回当前脚本的路径。 |
$_SERVER['SCRIPT_URI'] | 返回当前页面的 URI。 |
4.魔术常量
即php脚本的预定义常量,在每个脚本中都可访问,随代码所在位置不同而不同
- __LINE__: 当前行号
- __FILE__: 当前文件的绝对路径
- __DIR__: 当前所在目录的绝对路径
- __FUNCTION__: 当前所在方法的方法名,若不在方法中,则为空
- __CLASS__: 当前类的类名,若不在类中,则为空
- __TRAIT__:
- __METHOD__:
- __NAMESPACE__:
内置函数
数组排序 | |
sort($arr) | 以升序对数组排序 |
rsort($arr) | 以降序对数组排序 |
asort($arr) | 根据值升序 |
ksort($arr) | 根据健升序 |
arsort($arr) | 根据值降序 |
krsort($arr) | 根据健降序 |
日期 | |
date(format, time) |
返回时间字符串 time: 时间戳,默认当前时间 format: 格式化字符串,格式如下
|
date_default_timezone_set("Asia/Shanghai"); | 设置当前时区 |
mktime(hour,minute,second,month,day,year) |
拿到指定日期都时间戳 |
数据判断 | |
gettype(var) | 获取变量的类型,返回字符串 |
is_int(var) | 是否为整形 |
is_string(var) | 是否为字符串 |
settype(var, type) |
将var转换成type类型,返回是否转换成功。type可能的值如下: 'bool','int','float','string','array','object','null' |
URL | |
htmlspecialchars($url) | 把特殊字符转换为 HTML 实体, 就是把<和>之类的 HTML 字符替换为 < 和 > |
其他 | |
parg_match("正则", $str) | 正则表达式匹配字符串 |
include | 文件包含命令,将另外的php文件拿过来,若文件不存在,继续执行 |
require | 文件包含命令,将另外的php文件拿过来,若文件不存在,报错,停止执行 |
ini_set() | 临时修改配置文件的值,在运行结束后恢复 |
ini_get() | 获取配置文件中的值 |
error_reporting() | 设置脚本错误报告的级别 |