"在完成PHP输出函数和字符串操作的学习后,本篇笔记将记录 类型转换常量应用的学习过程。作为语法基础篇的第三部分,将重点关注:
  1. 类型转换
  2. 数学函数
  3. 常量定义:define()const 的使用差异
  4. 魔术常量应用:__LINE__ 等特殊常量
所有结论均基于当前测试代码总结,欢迎指正补充。"

目录

一、类型转换

二、数学函数

1、pi() 函数

2、min() 和 max() 函数

3、abs() 函数

4、sqrt() 函数

5、round() 函数

6、随机数

三、常量

1、创建 PHP 常量

2、const 关键字

3、const 与 define() 函数的区别

4、常量与变量的区别

四、魔术常量


一、类型转换

PHP 在变量声明时不需要定义类型。在这种情况下,变量的类型由存储的值决定。也就是说,如果 string 赋值给 $var,然后 $var 的类型就是 string。之后将 int 值赋值给 $var,它将是 int 类型。有时可能希望变量具有特定的数据类型, 这就需要通过类型转换来完成。

类型转换通过在值前面的括号中写入类型来将值转换指定的类型。

  • (string) - 转换为字符串类型。
  • (int) - 转换为整数类型。
  • (float) - 转换为浮点类型。
  • (bool) - 转换为布尔类型。如果值为 0、NULL、false 或为空,则 (bool) 会将其转换为 false,否则为 true。
  • (array) - 转换为数组类型。转换为数组时,大多数数据类型都会转换为一个仅包含一个元素的索引数组。NULL 值会转换为一个空的数组对象。对象会转换为关联数组,其中属性名称成为键,属性值成为值。
  • (object) - 转换为对象类型。转换为对象时,大多数数据类型都会转换为一个仅包含一个名为 "scalar" 的属性和相应值的对象。NULL 值会转换为一个空对象。索引数组会转换为对象,其中索引号作为属性名称,值作为属性值。关联数组会转换为对象,其中键作为属性名称,值作为属性值。
  • (unset) - 转换为 NULL 类型。

二、数学函数

PHP 有一套数学函数,可以对数字进行数学运算,这些数学函数只处理 int 和 float 类型范围内的值。接下来我们一起来学习常用的数学函数。

1、pi() 函数

pi() :返回 PI 的值(圆周率值)。

echo pi(); // 输出 "3.1415926535898"

2、min() 和 max() 函数

min():用于查找一系列参数中的最小值。

max():用于查找一系列参数中的最大值。

echo min(-3, -2, -1, 0, 1, 2, 3); // 输出 "-3"
echo max(-3, -2, -1, 0, 1, 2, 3); // 输出 "3"

3、abs() 函数

abs() :返回一个数的绝对值。

echo abs(-3); // 输出 "3"
echo abs(3); // 输出 "3"

4、sqrt() 函数

sqrt() :返回一个数的平方根。

sqrt() :返回一个数的平方根。

5、round() 函数

round() :将浮点数四舍五入为最接近的整数。

echo round(6.7); // 输出 "7"
echo round(6.49); // 输出 "6"
echo round(-7.1); // 输出 "-7"
echo round(-7.6); // 输出 "-8"

6、随机数

rand(min, max) :返回随机整数。

参数

描述

min,max

可选。规定随机数产生的范围。

如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。例如,想要 10 到 100(包括 10 和 100)之间的随机数,用 rand(10, 100)。 

echo rand(); // 输出 "0 到 RAND_MAX 之间的伪随机整数"
echo rand(10, 100); // 输出 "10 到 100 之间的随机整数"

三、常量

常量类似于变量,但一旦定义,它们就不能被更改或取消定义。

常量是一个简单值的标识符(名称)。在脚本执行期间,该值无法更改。有效的常量名以字母或下划线开头。与变量不同,常量在整个脚本中是自动全局的。

1、创建 PHP 常量

define(name, value, case-insensitive) 函数用于常量创建。

参数:

  • name: 指定常量的名称
  • value: 指定常量的值
  • case-insensitive: 指定常量名称是否不区分大小写。如果设置为 true,则该常量不区分大小写。默认是 false。

注意:PHP 7.3.0 起,废弃定义不区分大小写的常量。自 PHP 8.0.0 开始,只接受 false 值,传递 true 将产生警告。

创建一个区分大小写的常量名称:

define("greeting", "Hello World!");
echo greeting;

2、const 关键字

也可以使用 const 关键字创建常量。

const PI = 3.14;
echo PI;

3、const 与 define() 函数的区别

  • const 始终区分大小写。
  • define() 具有不区分大小写的选项。
  • const 不能在另一个块作用域内创建,例如在函数内部或 if 语句内部。
  • define() 可以在另一个块作用域内创建。

4、常量与变量的区别

常量和变量有如下不同:
  • 常量前面没有美元符号($)。
  • 常量可以不用理会变量的作用域而在任何地方定义和访问。
  • 常量一旦定义就不能被重新定义或者取消定义。
  • 常量只能计算标量值或数组。

四、魔术常量

有九个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,除了 ClassName::class 常量外,这些魔术常量在开头和结尾都带有双下划线。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/85162.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/85162.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/85162.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux lsof 命令详解+实例

👨‍🎓博主简介 🏅CSDN博客专家   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入&#xff01…

【Cobalt Strike手册】客户端界面功能

工具栏 顶部的工具栏提供了快速访问的功能,这些图片的功能从左到右功能以此如下表 创建新的连接断开当前的TeamServerListeners监听器列表以图形化展示表格形式展示表格展示目标管理Web服务查看获取到的认证信息查看下载的文件查看键盘记录查看截屏记录 图形化会话…

FastAPI本地文档的定制技巧

磨刀不误砍柴工,一份清晰的API文档能让前后端协作效率翻倍——源滚滚如是说 在前后端分离开发的今天,接口文档的质量直接决定了团队协作的效率。作为Python领域最受瞩目的现代Web框架,FastAPI最大的亮点之一是其自动化交互式文档功能。但很多…

Python 标准库概览

Python 标准库非常庞大,所提供的组件涉及范围十分广泛,使用标准库我们可以让您轻松地完成各种任务。 以下是一些 Python3 标准库中的模块: os 模块:os 模块提供了许多与操作系统交互的函数,例如创建、移动和删除文件和目录,以及访问环境变量等。 sys 模块:sys 模块提供…

AI大模型:(二)4.1 文生图(Text-to-Image)模型发展史

目录 1.介绍 2.发展历史 2.1.早期探索阶段(1980-2014 年) 2.1.1.卷积神经网络(CNN) 2.1.2.生成对抗网络(GAN)的提出 2.2.GAN主导时代(2015-2018 年) 2.2.1.高分辨率GAN的突破 2.2.2.文本-图像对齐的改进 2.3. Diffusion革命(2021–2022) 2.3.1.扩散模型(D…

vue3实现轮播渲染多张图每张进行放大缩小拖拽功能互不影响

vue3实现轮播渲染多张图每张进行放大缩小拖拽功能互不影响 1.以vue3中el-carousel轮播插件为例 <div class"pic_view"><el-carousel height"100vh" :autoplay"false" ref"carouselRef" change"handleCarouselChange&qu…

traceroute 使用说明

1、概述 Traceroute&#xff08;Windows 系统中为 tracert&#xff09;是一种网络诊断工具&#xff0c;用于跟踪数据包从本地设备到目标主机的传输路径&#xff0c;并显示沿途经过的每一跳&#xff08;路由器&#xff09;的延迟和 IP 地址。它通过发送不同 TTL&#xff08;生存…

用idea操作git缓存区回退、本地库回退、远程库回退

前言 使用idea软件操作git非常人性化和方便。 但是如果我的代码使用git提交之后,我想回到以前的版本,此时需要进行git的版本回退。 提交代码分为提交到缓存区、本地库、远程库这3个过程。 下面我将介绍每个阶段的提交对应的回退方法。 本篇文章是掌握git和使用idea操作git…

webpack+vite前端构建工具 - 3webpack处理js

3 webpack处理js webpack的核心——处理js文件&#xff0c;将模块化的代码打包。具体操作如下 es6转化&#xff08;为兼容老浏览器&#xff0c;将es6转化为es5&#xff09; babel-loader 代码规范&#xff08;例如空格&#xff0c;缩进等代码风格规范&#xff09; eslint 代码…

Nginx转发中相对路径资源302问题的分析与解决

Nginx转发中相对路径资源302问题的分析与解决 典型案例&#xff1a;后端页面引入./test.css的302问题 问题场景 假设我们有一个后端服务&#xff0c;其页面中通过相对路径引入了CSS文件&#xff1a; <!-- 后端页面代码 --> <link rel"stylesheet" href&…

Vue3 + TypeScript合并两个列表到目标列表,并且进行排序,数组合并、集合合并、列表合并、list合并

在Vue 3 TypeScript中合并并排序两个列表&#xff0c;可以通过以下步骤实现&#xff1a; 解决方案代码 vue 复制 下载 <script setup lang"ts"> import { ref, computed } from vue;// 定义列表项类型 interface ListItem {id: number;name: string;valu…

Python-教程

1 需求 2 接口 3 示例 4 参考资料 Python 教程 — Python 3.13.5 文档

Excel数据导出小记

文章目录 前言一、DataTable >EXCEL二、DBReader >Excel &#xff08;NPOI&#xff09;三、分页查询 DbReader>Excel (MiniExcel)总结&#xff1a; 前言 最近经历了一次数据量比较大的导出&#xff0c;也做了各种优化尝试&#xff0c;这里稍记录一下 一、DataTable …

深入理解链表数据结构:从Java LinkedList到自定义实现

引言 链表作为基础数据结构之一&#xff0c;在Java集合框架中以LinkedList的形式提供。本文将深入分析Java原生LinkedList的实现机制&#xff0c;并介绍我自定义实现的MyLinkedList&#xff0c;最后对比两者的设计差异与实现特点。 Java原生LinkedList解析 基本结构 Java的…

【深度学习】卷积神经网络(CNN):计算机视觉的革命性引擎

卷积神经网络&#xff08;CNN&#xff09;&#xff1a;计算机视觉的革命性引擎 一、算法背景&#xff1a;视觉智能的进化之路1.1 传统视觉处理的困境1.2 神经科学的启示 二、算法理论&#xff1a;CNN的核心架构2.1 基础组成单元卷积层&#xff1a;特征提取引擎池化层&#xff1…

使用@SpringJUnitConfig注解开发遇到的空指针问题

Spring测试中的版本陷阱&#xff1a;SpringJUnitConfig与JUnit版本兼容性深度解析 一个看似简单的空指针异常&#xff0c;背后可能隐藏着JUnit版本不匹配的“幽灵”。 一、SpringJUnitConfig&#xff1a;Spring与JUnit 5的桥梁 SpringJUnitConfig是Spring TestContext框架为**…

[2025CVPR]AdcSR:一种高效实世界图像超分辨率的对抗扩散压缩方法

目录 1. 背景与挑战 2. AdcSR模型概述 2.1 模型架构 2.2 训练策略 3. 公式与原理 4. 创新点 5. 实验与结果 5.1 实验设置 5.2 结果对比 5.3 消融实验 6. 结论 在计算机视觉领域&#xff0c;图像超分辨率&#xff08;Image Super-Resolution, ISR&#xff09;一直是一…

Go 语言中的字符串基本操作

这篇文章已经放到腾讯智能工作台的知识库啦&#xff0c;链接在这里&#xff1a;ima.copilot-Go 入门到入土。要是你有啥不懂的地方&#xff0c;就去知识库找 AI 聊一聊吧。 本篇将详细讲解 Go 语言中与字符串相关的操作。 1、rune 和 字符串长度 1、Go 函数语法约定 在开始…

数学建模会议笔记

看似优化模型 建立整数规划模型 用优化软件、启发式方法、精确方法求解 建立图论和组合优化模型用组合优化方法、启发式方法求解 建立博弈论模型 数据统计分析与可视化- 数据拟合、参数估计、插值、数据的标准化、去伪补全相关度分析、分类、聚类等 最优化理论和方法 线性规划…

学习昇腾开发的六天--ACL应用开发之运行第一个实例

1、下载一个实例&#xff0c;运行一个图像分类实例&#xff08;环境&#xff1a;Ubuntu22.04&#xff0c;硬件&#xff1a;昇腾310B1&#xff0c;加速模块&#xff1a;atlas 200i a2&#xff09; samples: CANN Samples - Gitee.com 目录结构如下&#xff1a; ├── data │…