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…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...