PHP语法学习(第七天)-循环语句,魔术常量
老套路了,朋友们,先回忆昨天讲的内容PHP语法学习(第六天)主要讲了PHP中的if…else语句、关联数组以及数组排序。
想要学习更多PHP语法相关内容点击“PHP专栏!”
下列代码都是在PHP在线测试运行环境中得到的!!
还记得电击小子吗?——小光:“只要你不放弃自己,一定能成功!”

文章目录
- PHP 循环语句
- while 循环
- 实例
- do...while 语句
- 实例
- for 循环
- 实例
- foreach 循环
- 实例:
- PHP 魔术常量
- `__LINE__` :文件中的当前行号
- `__FILE__`:文件的完整路径和文件名
- 实例:
- `__DIR__`:文件所在的目录
- 实例
- `__FUNCTION__`:函数名称
- 实例
- `__CLASS__`:类的名称
- 实例
- `__TRAIT__`:Trait 的名字
- 实例:
- `__METHOD__`:类的方法名
- 实例:
- `__NAMESPACE__`:当前命名空间的名称
- 实例:
PHP 循环语句
在 PHP 中,有下列循环语句:
while- 只要指定的条件成立,则循环执行代码块do...while- 首先执行一次代码块,然后在指定的条件成立时重复这个循环for- 循环执行代码块指定的次数foreach- 根据数组中每个元素来循环代码块
while 循环
- 只要指定的条件成立,则循环执行代码块
语法:
while (条件)
{要执行的代码;
}
实例
<html>
<body><?php
$i=1;
while($i<=5)
{ echo "电击小子 is NO" . $i . "<br>";$i++;
}
?></body>
</html>
运行结果:
电击小子 is NO1
电击小子 is NO2
电击小子 is NO3
电击小子 is NO4
电击小子 is NO5
do…while 语句
- 首先执行一次代码块,然后在指定的条件成立时重复这个循环
语法:
do
{要执行的代码;
}
while (条件);
实例
<html>
<body>
<?php
$i=1;
do
{$i++; #先执行i=i+1echo "电击小子 is NO" . $i . "<br>";
}
while ($i<=5);
?>
</body>
</html>
运行结果:
电击小子 is NO2
电击小子 is NO3
电击小子 is NO4
电击小子 is NO5
电击小子 is NO6
for 循环
- 循环执行代码块指定的次数
语法:
for (初始值; 条件; 增量)
{要执行的代码;
}
实例
<?php
for ($i=1; $i<=5; $i++)
{echo "电击小子 is NO" . $i . "<br>";
}
?>
运行结果
电击小子 is NO1
电击小子 is NO2
电击小子 is NO3
电击小子 is NO4
电击小子 is NO5
foreach 循环
foreach循环用于遍历数组- 根据数组中每个元素来循环代码块
语法:
先讲讲原理:每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,你会看到数组中的下一个值。
foreach ($array as $value)
{要执行代码;
}
实例:
<?php
$car =array("SU7 Ultra","BMW","RB17");
foreach ($car as $value)
{echo "我的梦想 ".$value . "<br>";
}
?>
运行结果:
我的梦想 SU7 Ultra
我的梦想 BMW
我的梦想 RB17
PHP 魔术常量
- 所谓的“魔术变量”实际上是指一组特殊的预定义常量
- 这些“魔术变量”在调试、日志记录、自动路径处理等场景中都非常有用
- PHP当中有八个魔术常量,这些常量的值会随着它们在代码中的位置改变而改变
__LINE__ :文件中的当前行号
实例:
<?php
echo '这是第 " ' . __LINE__ . ' " 行';
?>
运行结果:
这是第 " 2 " 行
__FILE__:文件的完整路径和文件名
- 若用在被包含文件中,则返回被包含的文件名
- 从 PHP 4.0.2版本 开始,
__FILE__总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径
实例:
<?php
echo '该文件位于 " ' . __FILE__ . ' " ';
?>
运行结果:
该文件位于 " /box/script.php "
这里的文件名是在PHP在线测试网站运行得到的(个人建议一边学一边玩代码)
__DIR__:文件所在的目录
- 若用在被包括文件中,则返回被包括的文件所在的目录
- 该常量等价于
dirname(__FILE__),在PHP 5.3.0版本中新增了,只有根目录中,包括末尾的斜杠
实例
<?php
echo '该文件位于 " ' . __DIR__ . ' " ';
?>
运行结果:
该文件位于 " /box "
__FUNCTION__:函数名称
- 从
PHP 5起本常量返回该函数被定义时的名字(区分大小写) - 在
PHP 4中该值总是小写字母的
实例
<?php
function lxj() {echo '函数名为:' . __FUNCTION__ ;
}
lxj( );
?>
运行结果:
函数名为:lxj
__CLASS__:类的名称
- 从
PHP 5起本常量返回该类被定义时的名字(区分大小写) - 从
PHP 5.4起,__CLASS__对trait也起作用。当用在trait方法中时,__CLASS__是调用trait方法的类的名字
实例
<?php
class lxj {function _print() {echo '类名为:' . __CLASS__ . "<br>";echo " 函数名为:" . __FUNCTION__ ;}
}
$t = new lxj();
$t->_print();
?>
运行结果:
类名为:lxj
函数名为:_print
__TRAIT__:Trait 的名字
- 从
PHP 5.4.0版本起 ,PHP 实现了代码复用的一个方法,称为traits Trait名包括其被声明的作用区域(例如 Foo\Bar)。从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。与 MyHelloWorld 类中定义的方法一致。- 优先顺序是当前类中的方法会覆盖 trait 方法,而 trait 方法又覆盖了基类中的方法。
实例:
<?php
class Base {public function sayHello() {echo 'Hello ';}
}trait SayWorld {public function sayHello() {parent::sayHello();echo 'LXJ!';}
}
class MyHelloWorld extends Base {use SayWorld;
}$o = new MyHelloWorld();
$o->sayHello();
?>
运行结果:
Hello LXJ!
__METHOD__:类的方法名
-返回该方法被定义时的名字(区分大小写),该常量是在PHP 5.0.0 新加的
实例:
<?php
function lxj() {echo '函数名为:' . __METHOD__ ;
}
lxj();
?>
运行结果:
函数名为:lxj
__NAMESPACE__:当前命名空间的名称
- 此常量是在编译时定义的(PHP 5.3.0 新增)。
实例:
<?php
namespace djxz;echo '命名空间为:"', __NAMESPACE__, '"';// 输出 命名空间为:"djxz"
?>
今天的内容到这里就结束了,明天见!!
PHP相关内容专栏点击"PHP语法知识"
想要了解更多请点击练小杰的CSDN!!!!
欢迎各位在评论区踊跃讨论,积极提出问题,解决困惑!!!

相关文章:
PHP语法学习(第七天)-循环语句,魔术常量
老套路了,朋友们,先回忆昨天讲的内容PHP语法学习(第六天)主要讲了PHP中的if…else语句、关联数组以及数组排序。 想要学习更多PHP语法相关内容点击“PHP专栏!” 下列代码都是在PHP在线测试运行环境中得到的!! 还记得电…...
数据库授权讲解一下
这条 SQL 命令是 MySQL 数据库中用于权限管理的 GRANT 语句。它用于授予用户特定的权限。下面是命令的详细解释: GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY Zz!12345678 WITH GRANT OPTION;GRANT: 这是一个关键字,用于…...
组件开发的环境准备: nodejs安装,npm镜像源的修改,pnpm包管理器的安装(全局安装),基于pnpm创建脚手架项目
Node.js 是一个开源的、跨平台的 JavaScript 运行环境(本质是Chrome引擎的封装),允许开发者使用 JavaScript 来编写服务器端代码 npm(Node Package Manager)是 Node.js 包管理器, 用来安装各种库、框架和工具 【Node.js官网】 https://nodejs.org 【n…...
学生成绩统计系统
实验内容 问题描述: 输入n个学生的考试成绩,每个学生信息由姓名与分数组成;试设计一种算法: (1)按分数高低次序,打印出每个学生的名次,分数相同的为同一名次; (2)按名次输出每个学生的姓名与分数。 基本要求: (1)学生的考试成绩必须通过…...
【Spring项目】图书管理系统
阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:项目实现准备 1:需求 (1)登录 2:准备…...
Vivado ILA数据导出MATLAB分析
目录 ILA数据导出 分析方式一 分析方式二 有时候在系统调试时,数据在VIVADO窗口获取的信息有限,可结合MATLAB对已捕获的数据进行分析处理 ILA数据导出 选择信号,单击右键后,会有export ILA DATA选项,将其保存成CS…...
【开源免费】基于SpringBoot+Vue.JS高校学科竞赛平台(JAVA毕业设计)
博主说明:本文项目编号 T 075 ,文末自助获取源码 \color{red}{T075,文末自助获取源码} T075,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...
【机器学习】——windows下安装anaconda并在vscode上进行配置
一、安装anaconda 1.进入清华的镜像网站,下载自己电脑对应的anaconda版本。网站:https://repo.anaconda.com/archive/ 这里我下载的版本是anaconda3-2024.10-1-Windows-x86-64 2.下载完毕后开始安装anaconda 3.配置anaconda环境变量 在设置中找到编…...
【H2O2|全栈】Node.js与MySQL连接
目录 前言 开篇语 准备工作 初始配置 创建连接池 操作数据库 封装方法 结束语 前言 开篇语 本节讲解如何使用Node.js实现与MySQL数据库的连接,并将该过程进行函数封装。 与基础部分的语法相比,ES6的语法进行了一些更加严谨的约束和优化&#…...
汽配行业数字化解决方案(一)
汽配行业数字化解决方案,是通过整合云计算、大数据、人工智能、物联网等先进技术,构建一个全面、高效、智能的数字化生态系统,以实现汽配供应链的全程可视化与智能化管理。该解决方案涵盖了从供应商管理、库存优化、订单处理、物流跟踪到客户…...
前端路径“@/“的使用和配置
环境:vitets 需要安装types/node npm install types/node --save-dev在tsconfig.json中添加 如果有tsconfig.app.json和tsconfig.node.json文件,则在app.json中添加 "compilerOptions": {"baseUrl":".","paths&q…...
动态规划子序列问题系列一>最长递增子序列
题目: 解析: 代码: public int lengthOfLIS(int[] nums) {int n nums.length;int[] dp new int[n];int ret 1;//最坏情况为1//初始化for(int i 0; i < n; i) dp[i] 1;for(int i 1; i < n; i){for(int j 0; j < i-1; j)if(…...
链表头文件大更新!!!
引言 原文章:链表简介及自制链表操作头文件_自己写一个链表头文件-CSDN博客。 此次更新添加了更多功能,让改头文件更 人性化 。 安装教程见原文章。 介绍 linked_list.h 头文件 linked_list.h 是一个 C 头文件,定义了一个模板类 LinkedListÿ…...
力扣3381.长度可被K整除的子数组的最大元素和
力扣3381.长度可被K整除的子数组的最大元素和 题目 题目解析及思路 题目要求返回一段长度为K的倍数的最大子数组和 同余前缀和 代码 class Solution { public:long long maxSubarraySum(vector<int>& nums, int k) {int n nums.size();vector<long long>…...
http.ServeMux多路复用器的设置
package mainimport ("fmt""net/http" )func first(w http.ResponseWriter, r *http.Request) {fmt.Fprintln(w, "多函数-first") }func second(w http.ResponseWriter, r *http.Request) {fmt.Fprintln(w, "多函数-second") }func ma…...
优化器与优化方法:在现代科学与工程中的应用
目录 编辑 优化器:机器学习中的参数调整 1. 梯度下降系列 2. 动量法(Momentum) 3. Adagrad 4. RMSprop 5. Adam 优化方法:寻找系统最优解 线性规划 非线性规划 凸优化 非凸优化 结论 在当今的科学和工程领域&#…...
笔记本外接显示屏没声音
1、笔记本正常有声音,但是外接显示屏后没有声音了怎么回事呢?原来外接显示屏后笔记本的声音输出会自动选择显示屏的音频输出,但是显示屏可能没有声音输出所以导致笔记本没有声音。 2、解决办法:打开笔记本设置,选择声…...
vue框架
Vue.js是一种用于构建用户界面的JavaScript框架。它是一个轻量级框架,被设计为逐渐采用的渐进式框架,可以与现有项目集成,也可以作为一个完整的单页应用程序框架使用。 Vue.js具有以下特点: 简单易学:Vue.js的API简单…...
Vue指令(一)--v-html、v-show、v-if、v-else、v-else-if、v-on、v-bind、v-for、v-model
目录 (一)初识指令和内容渲染指令v-html 1.v-html 案例: 官网的API文档 (二)条件渲染指令v-show和v-if 1. v-show 2. v-if (三)条件渲染指令v-else和v-else-if 案例 (四…...
ElK 8 收集 MySQL 慢查询日志并通过 ElastAlert2 告警至飞书
文章目录 1. 说明2. 启个 mysql3. 设置慢查询4. filebeat 设置5. 触发慢查询6. MySQL 告警至飞书 1. 说明 elk 版本:8.15.0 2. 启个 mysql docker-compose.yml 中 mysql: mysql:# restart: alwaysimage: mysql:8.0.27# ports:# - "3306:3306&q…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

"PHP语法知识"