后端 - Lession 01 PHP 基础
Posted mhxs
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后端 - Lession 01 PHP 基础相关的知识,希望对你有一定的参考价值。
目录
Lession 01 php 基础
1. php 基础
phpinfo():输出版本号
- echo:输出文本
- php.ini:php的配置文件
2. php 变量
命名变量必须用 $ 开头
严格区分大小写
不能以特殊字符和数字开头(可以用下划线)
unset:销毁变量
isset():判断变量是否存在
isset(var1, var2)
普通变量的作用域:函数
内部作用域
和外部作用域
是不相关的<?php // 变量的作用域 $test = 'hello'; function test () echo $test; // 报错, 变量未定义 test();
2.1 静态变量:
static
可以定义静态变量- 只会初始化一次,会保存上一次的值
<?php // 静态变量 function total() static $num = 2; $num *= 2; echo $num; total(); total(); total();
2.2 超全局变量:
- $GLOBALS:用于在 PHP 脚本中的任意位置访问全局变量
- $_SERVER:保存关于报头、路径和脚本位置的信息
- $_REQUEST:接收 html 表单提交的数据
- $_POST:接收 post 请求数据
- $_GET:接收 get 请求数据
- $_FILES:接收 文件 数据
- $_ENV:是一个包含服务器端环境变量的数组
- $_COOKIE:获取 请求所带的 COOKIE
- $_SESSION:获取 请求所带的 SESSION
3. php 单引号 和 双引号区别
单引号不识别变量,双引号识别变量
单引号不会转义特殊字符, 双引号可以
<?php // 单双引号区别 $name = '张三'; $age = 18; $sex = 'man'; echo "$name"; // 张三 echo '$name'; // $name // 结论:单引号不解析变量,双引号解析变量 echo "\n"; // 换行 echo '\n'; // \n // 结论:单引号不会转义特殊字符, 双引号可以 ?>
- 变量和字符串,用一个点
.
拼接起来
- 变量和字符串,用一个点
双引号可以将变量和字符串拼接起来
"$name好好学习" -> "张三好好学习"
- 双引号 套 单引号 套 变量,输出外面带单引号的变量
"‘$name‘" -> ‘张三‘
- 双引号 套 单引号 套 变量,输出外面带单引号的变量
单引号效率比双引号高
4. 数据类型
1. 标量
1. 整型:1 2
2. 浮点型:1.2 1.3
3. 布尔类型:true false
4. 字符串:单双引号引起来的都是字符串
2. 混合类型(重点)
1. 数组:array
2. 对象:object
3. 特殊类型
1. 空:null
2. 资源:resource
5. 数据类型转换
- 检测数据类型:gettype()
- 类型转换
- intval():转换为整数,integer
- floatval():转换为小数,double
- strval():转换为字符串,string
- boolval():转换为布尔值,boolean
- 判断数据类型的常用函数
- is_array()
- is_string()
- is_bool()
- is_float()
- is_object()
- is_int()
- is_numeric():数字字符串会转换成数字,然后再判断,但不能混合非数字字符
- is_resource():判断是否是资源
- is_null()
- is_scalar():判断是否是标量
6. 常量
定义常量:
define(‘abc‘, ‘abc‘);
常量注意点:
* 常量可以直接用大写字母和下划线定义,不必加`$`符号
赋值只能为标量
赋值只能为标量
* 常量不能写到字符串中
?
判断常量是否被定义:
defined(‘常量名‘)
系统常量:
__FILE__
:找你的文件__LINE__
:获取代码所在的行数__DIR__
:找到当前文件的目录PHP_OS
:获取系统信息PHP_VERSION
:获取版本信息__FUNCTION
:获取当前函数名M_PI
:圆周率了解:
__MHTHOD__
:获取当前成员方法名__NAMESPACE__
:获取当前命名空间的名字__TRAIT__
:获取当前 TRAIT 名字(多继承)__CLASS__
:获取当前类名
?
7. 运算符
与其他语言差不多
8. 为 false 的几种情况(条件判断)
- 字符串和数字:
‘‘
、0
、‘0‘
、0.000
- 字符串
‘0.000‘
为真
- 数组:
[]
(与 js 不同)
9. 流程判断
与其他语言基本相同
拓展:
? 1. 随机数:mt_rand(1, 10);
10. 循环
与其他语言一样,循环内的变量不是局部变量
11.1 函数
定义:function name()
? 1. 函数分为类库函数 和 自定义函数
? 2. 类库函数不可再自定义
? 3. 行参可设置默认值,与 es6 类似
? 4. 没设置默认参数时,实参少了会报错
? 5. 函数不区分大小写
<?php
function Name($name = '刘程', $sex = '男')
echo '我是:'.$name.' . 性别:'.$sex;
return true;
$temp = name('liucheng'); // 我是:liucheng . 性别:男
echo '<br />'.$temp; // 返回值 true
- 变量和作用域看标题2 变量
- 行参的类型约束(重要)
11.2 函数的 行参 和 返回值
11.2.1 行参约束类型
?行参约束类型后,函数会将传入的数据转换为对应的数据,若无法转换,将报错。
<?php
// 约束函数行参的类型
function test(string $name, int $num)
echo gettype($name).'<br />';
echo gettype($num).'<br />';
test('liucheng', 20);
test(520, 20);
// test(520, "a"); // 报错, 'a' 不是整数
11.2.2 返回值的约束类型
变量括号后面加一个 `:string` , 约束其返回值为 string ,不是 string 就会报错
<?php
// 约束函数返回值
function test(string $name, int $num):string
return $name.$num;
print_r(test('liucheng', 20).'<br>');
print_r(test(520, 20).'<br>');
echo test(520, "a").'<br>';
11.2.3 函数的可变参数
? 不用设置行参,即可获取传入的参数
func_get_args()
: 获取传入的参数,组成数组。func_get_arg(n)
: 获取对应下标位置的参数
<?php
// 可变参数
function test()
$temp = func_get_args();
echo func_get_arg(1).'<br>';
return $temp;
print_r(test('liucheng', 20)); // 输出:Array ( [0] => liucheng [1] => 20 )
12. 常用函数
12.1 数学函数
- 随机数
- rand
- mt_rand:性能比 rand 好 4 倍
- 小数
- floor:向下取整
- ceil:向上取整
- round:四舍五入取整
- 其他
- abs:绝对值
- pi:圆周率
- M_PI:常量, 与 pi() 函数返回值相同
- pow:指数表达式
- max:最大值
- min:最小值
12.2 字符串内置函数
- 大小写转换
- strtolower:大写转小写
- strtoupper:小写转大写
- lcfirst:首字母小写
- ucfirst:首字母大写
- ucwords:每个单词首字母大写
- 空白处理
- trim:去掉首位空格
- ltrim:去掉头部空格
- rtrim / chop:去掉尾部空格
- 查找定位
- strstr / strchr:检测 字符串 在 另一个字符串 第一次出现到结尾的内容(大小写敏感)
- strrchr:检测 字符串 在 另一个字符串 最后一次出现 到 结尾 的内容
- stristr:strstr 忽略大小写版本
- strpos:返回字符串首次出现的位置(大小写敏感)
- stripos:strpos 忽略大小写版本
- strrpos:返回字符串最后一次出现的位置(大小写敏感)
- strripos:strrpos 忽略大小写版本
- sbustr:子字符串提取
- strpbrk:返回 (搜索条件的任意字符) 首次出现到结尾的内容(大小写敏感)
- 比较
- strcmp:二进制比较字符串
- strcasecmp:strcmp 忽略大小写比较
- strnatcmp:使用一种"自然排序"算法来比较两个字符串(对大小写敏感),在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。
- strnatcasecmp:strnatcmp:忽略大小写版本
顺序
- str_shuffle:随机打乱字符串顺序
- strrev:倒序排列字符串
转换
- chr:将 ASCII 码值转换为字符
未完待续。。。
12.3 数组内置函数
以上是关于后端 - Lession 01 PHP 基础的主要内容,如果未能解决你的问题,请参考以下文章