后端 - Lession 01 PHP 基础

mac2022-06-30  23

目录

Lession 01 php 基础 1. php 基础2. php 变量3. php 单引号 和 双引号区别4. 数据类型5. 数据类型转换6. 常量7. 运算符8. 为 false 的几种情况(条件判断)9. 流程判断10. 循环11.1 函数11.2 函数的 行参 和 返回值12. 常用函数

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 2浮点型:1.2 1.3布尔类型:true false字符串:单双引号引起来的都是字符串混合类型(重点) 数组:array对象:object特殊类型 空:null资源:resource

5. 数据类型转换

检测数据类型:gettype()类型转换 intval():转换为整数,integerfloatval():转换为小数,doublestrval():转换为字符串,stringboolval():转换为布尔值,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. 流程判断

与其他语言基本相同

拓展:

随机数:mt_rand(1, 10);

10. 循环

与其他语言一样,循环内的变量不是局部变量


11.1 函数

定义:function name() {}

函数分为类库函数 和 自定义函数

类库函数不可再自定义

行参可设置默认值,与 es6 类似

没设置默认参数时,实参少了会报错

函数不区分大小写

<?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 数学函数

随机数 randmt_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 数组内置函数

转载于:https://www.cnblogs.com/mhxs/p/11222719.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)