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,这会导致无限循环。

相关推荐
雨颜纸伞(hzs)10 分钟前
C语言介绍
c语言·开发语言·软件工程
J总裁的小芒果12 分钟前
THREE.js 入门(六) 纹理、uv坐标
开发语言·javascript·uv
vvw&33 分钟前
如何在 Ubuntu 22.04 上安装 phpMyAdmin
linux·运维·服务器·mysql·ubuntu·php·phpmyadmin
坊钰41 分钟前
【Java 数据结构】移除链表元素
java·开发语言·数据结构·学习·链表
chenziang11 小时前
leetcode hot100 LRU缓存
java·开发语言
时雨h1 小时前
RuoYi-ue前端分离版部署流程
java·开发语言·前端
奥顺互联V1 小时前
深入理解 ThinkPHP:框架结构与核心概念详解
大数据·mysql·开源·php
云计算DevOps-韩老师1 小时前
【网络云计算】2024第52周-每日【2024/12/25】小测-理论&实操-自己构造场景,写5个系统管理的脚本-解析
开发语言·网络·云计算·bash·perl
暮色尽染1 小时前
Python 正则表达式
开发语言·python
IT猿手1 小时前
最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解GLSMOP1-GLSMOP9及工程应用---盘式制动器设计,提供完整MATLAB代码
开发语言·算法·机器学习·matlab·强化学习