PHP基础语法(二)

一、整数类型

php 复制代码
$var1 = 42;        // 一个整数,使用默认的 int 类型
$var2 = -12345;    // 一个负整数
$var3 = 0x1A;      // 16 进制整数,相当于十进制的 26
$var4 = 0123;      // 八进制整数,相当于十进制的 83
$var5 = 0b1111;    // 二进制整数,相当于十进制的 15

// php中提供了很多函数进行转换:
// Decbin():十进制转二进制
var_dump(decbin(107)); // 结果:string(7) "1101011"
// Decoct():十进制转八进制
// Dechex():十进制转十六进制
// Bindec():二进制转十进制

二、浮点类型

尽量不要用浮点型做精确判断

三、布尔类型

isset()

isset() 函数用于检查一个变量是否已经被声明并且值不是 null

  • 用法isset(variable)
  • 返回值 :如果变量已设置且值不为 null,则返回 true;否则返回 false

empty()

empty() 函数用于检查一个变量是否为空。空变量被定义为以下情况之一:

  • 不存在或未声明

  • 值为 false

  • 值为 0(作为整数或字符串)

  • 值为空字符串 ""

  • 值为 null

  • 值为空数组 [] 或空对象 stdClass

  • 用法empty(variable)

  • 返回值 :如果变量为空,则返回 true;否则返回 false

php 复制代码
$var1 = 5;
$var2 = null;
$var3 = "Hello";

isset($var1);  // true,因为 $var1 已设置且值不为 null
isset($var2);  // false,因为 $var2 值为 null
isset($var3);  // true,因为 $var3 已设置且值不为 null
isset($var4);  // false,因为 $var4 未声明

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

$var1 = 0;
$var2 = "";
$var3 = null;
$var4 = [];  // 空数组

empty($var1);  // true,因为 $var1 的值为 0
empty($var2);  // true,因为 $var2 的值为空字符串
empty($var3);  // true,因为 $var3 的值为 null
empty($var4);  // true,因为 $var4 是空数组
  • isset() 主要用于检查变量是否已经设置和不为 null,通常用于检测变量是否存在以及避免 null 值导致的错误。
  • empty() 则用于检查变量是否为"空",比如检查用户输入、默认值或数据存储中的空值情况。

四、运算符

php 复制代码
<?php
// 运算符:是一种将数据进行运算的特殊符号,在PHP中一共有十多种运算符。
// 算术运算符 +-*/%
// 比较运算符 > >= < <= ==(数据大小相同即可,无需考虑数据数据类型) != ===(全等于,大小及数据类型均等) !==
$a = '123'; // 字符串
$b = 123; // 整型
var_dump($a == $b); // 结果: bool(true)
var_dump($a === $b); // 结果: bool(false) 不全等于
// 逻辑运算符 &&(左边条件与右边条件同时成立) ||(有一个满足即可) !(取反)
$c = 'weekend';
$d = 'goods';
var_dump($c == 'weekend' && $d == 'good'); // bool(false)
var_dump($c == 'weekend' || $d == 'good'); // bool(true)
var_dump(!($c == good); // bool(true)
 连接运算符 .(将字符串连接一起)    .=(将左边内容与右边内容连接起来并重新赋值)
$e = 'hello';
$f = 123;
echo $e . $f; // hello 123(注意,此处有强制类型转换)
$e .= $f;
echo $e; // hello 123
 错误抑制符:@(可能出错的表达式),在PHP中有一些错误可以提前预知,但又不想报错,这就需要错误抑制符。
$g = 0;
echo $f % $g; // 此时会报错
echo @($f % $g); // 不会报错
 三目运算符(问号表达式) 表达式1 ? 表达式2:表达式3;

流程控制
分类:顺序结构、分支结构(if分支与switch分支)、循环结构
 自操作运算符 ++ --(前置或后置如果只有自操作,则效果一致)
$i = $g++; // $g = 1; $i = 0
$i = ++$g; // $g = 2; $i = 2;
 位运算符
/*
计算机码:计算机在实际存储数据时,采用的编码规则(二进制规则)
计算机码:原码、反码和补码。数值本身最左边一位用来充当符号位:正数为0,负数为1;
原码:数据本身从十进制转换成二进制得到的结果
正数,左符号位为0 负数:左符号位为1
反码:针对负数,符号位不变,其他位取反。
补码:针对负数,反码+1.(系统中存的为补码)
以0为例,若是原码,则+0 = 00000000 -0 = 10000000;二者不一样
-0 反码 11111111 -0 补码 00000000 与+0一样(正数原码、补码、反码为其本
身)。
*/
$j = 5; // 原码:00000101
$k = -5; // 原码:10000101 反码:11111010 补码:11111011
// 位运算:取出计算机中最小的单位(bit)进行运算 & | ~(按位取反) ^(按位异或) >>(右移) <<(左移)
// 注:1、系统进行位运算时,均是利用补码进行运算的 2、运算结束之后,必须转换为原码进行显示
// 按位取与
var_dump($j & $k); // int(1)
/* 5 00000101
-5 11111011
& 00000001 判断:符号位为0,正数,所存即为原码,无需操作
*/
// 按位取反
var_dump(~ $k); // int(4)
/*
-5 11111011
~ 00000100 正数即为原码,
*/
// 按位左移
var_dump($k >> 1) // int(-3)
var_dump($k >> 2) // int(-2)
/*
-5 11111011
>>2 11111110(右移补符号位)
反码 11111101(补码-1)
原码 10000010(除符号位均取反)
*/

五、流程控制

1、for循环

php 复制代码
<?php
for($i = 0;$i<=10;$i++)
{
echo $i;
}
?>

2、while和do-while循环

3、中断控制

  • continue 用于跳过当前循环迭代的剩余代码,继续执行下一次迭代。
  • break 用于立即退出整个循环,不再执行后续的迭代。

4、流程控制替代语法

  • if 后面使用 : 而不是 {,else 后面使用 : 而不是 {,endif; 替代了普通语法中的 }。
  • foreach 后面使用 : 而不是 {,endforeach; 替代了普通语法中的 }。
  • for 循环的初始化、条件和增量部分保持不变,使用 : 代替 {,endfor; 代替 }。
  • 替代语法主要用于在 HTML 或模板文件中嵌入 PHP 代码时,可以增加代码的可读性。

使用表格打印九九乘法表:

php 复制代码
<?php
// 普通语法
for ($i = 1; $i <= 10; $i++) {
    echo $i;
}
?>

<!-- 替代语法 -->
<?php for ($i = 1; $i <= 10; $i++): ?>
    <?php echo $i; ?>
<?php endfor; ?>

六、常见系统函数

字符串处理函数

  1. strlen() - 返回字符串的长度。
  2. strpos() - 查找字符串在另一个字符串中第一次出现的位置。
  3. substr() - 返回字符串的一部分。
  4. strtolower() / strtoupper() - 将字符串转换为小写 / 大写。
  5. str_replace() - 替换字符串中的部分内容。

数组函数

  1. count() - 统计数组中元素的个数。
  2. array_push() / array_pop() - 向数组末尾添加元素 / 弹出数组末尾的元素。
  3. array_merge() - 合并一个或多个数组。
  4. array_key_exists() - 检查数组中是否存在指定的键名。

文件和目录函数

  1. file_get_contents() - 将整个文件读入一个字符串。
  2. file_put_contents() - 将一个字符串写入文件。
  3. fopen() / fclose() - 打开 / 关闭文件。
  4. mkdir() / rmdir() - 创建 / 删除目录。

日期和时间函数

  1. date() - 格式化本地日期时间。
  2. strtotime() - 将任何英文文本的日期时间描述解析为 Unix 时间戳。
  3. time() - 返回当前 Unix 时间戳。
  4. strtotime() - 将日期时间字符串解析为 Unix 时间戳。

其他常用函数

  1. echo() - 输出一个或多个字符串。
  2. var_dump() - 打印变量的相关信息,包括类型和值。
  3. isset() / empty() - 检查变量是否已设置并且非空 / 检查一个变量是否为空。
  4. header() - 发送 HTTP 报头。
  5. die() / exit() - 输出一条消息并且退出当前脚本。

七、文件包含原理

  • 在 PHP 中,可以使用 include(文件存在性不强)require(文件必须)include_oncerequire_once 等语句来包含其他文件。
  • 这些语句使得在当前 PHP 脚本中可以引入其他 PHP 文件的内容,从而实现代码复用和模块化开发。
  • 当遇到 includerequire 语句时,PHP 解析器会根据路径信息去寻找指定的文件。
  • include 在包含文件不存在或出错时会发出警告,但脚本会继续执行。
  • require 在包含文件不存在或出错时会导致致命错误,停止脚本的执行。
  • 除了 includerequire 外,还有 include_oncerequire_once,它们的作用是确保文件只被包含一次,即使多次调用也只会包含一次,避免重复定义函数或类等。

七、文件加载路径

  • 如果路径是一个相对路径,解析器会相对于当前脚本所在的路径来寻找文件。
  • 如果路径是一个绝对路径,解析器会从服务器的根目录或虚拟主机的根目录开始寻找文件。

八、文件嵌套包含

文件包含可以是嵌套的,也就是说,一个被包含的文件可以包含其他文件。

注意:

  1. 路径问题确保包含的文件路径正确 ,可以使用相对路径或绝对路径,或者通过设置 include_path 确定 PHP 解析器搜索文件的路径。

  2. 循环包含避免出现循环包含,即 A 包含了 B,而 B 又包含了 A,这会导致无限循环。

相关推荐
BingoGo13 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack13 小时前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack2 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo2 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
JaguarJack4 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1234 天前
matlab画图工具
开发语言·matlab
dustcell.4 天前
haproxy七层代理
java·开发语言·前端