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!!!!
欢迎各位在评论区踊跃讨论,积极提出问题,解决困惑!!!

在这里插入图片描述

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

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

相关文章

ue5 motion matching

ue5.5 gameanimationsample 先看动画蓝图 核心两个node 第一个是根据数据选择当前的pose 第二个是缓存一段历史记录&#xff0c;为第一个node选择的时候提供数据。 在animinstance的update方法中 每帧都更新这个函数&#xff0c;每帧更新trajectory的数据 看看第一个node的…

【推导过程】常用共轭先验分布

文章目录 相关教程相关文献常用共轭先验分布预备知识贝叶斯统计后验分布的计算 正态均值(方差已知)的共轭先验分布是正态分布二项分布中的成功概率 θ 的共轭先验分布是贝塔分布正态均值(方差已知)的共轭先验分布是倒伽玛分布 作者&#xff1a;小猪快跑 基础数学&计算数学&…

消息队列(MQ):系统解耦与异步通信的利器

在现代分布式系统架构中&#xff0c;消息队列&#xff08;Message Queue&#xff0c;简称 MQ&#xff09;扮演着极为重要的角色。它作为一种中间件&#xff0c;能够有效地解决系统之间的耦合性问题&#xff0c;并实现高效的异步通信&#xff0c;极大地提升了系统的整体性能、可…

YOLO系列发展历程:从YOLOv1到YOLO11,目标检测技术的革新与突破

文章目录 前言一、YOLOv1&#xff1a;单阶段目标检测的开端二、YOLOv2&#xff1a;更精准的实时检测三、YOLOv3&#xff1a;阶梯特征融合四、YOLOv4&#xff1a;性能和速度的新平衡五、YOLOv5&#xff1a;易用性和扩展性的加强六、YOLOv6&#xff1a;工业部署的利器七、YOLOv7&…

ConcurrentLinkedQueue<>实现生产者-消费者问题理解和简易demo

1.ConcurrentLinkedQueue<> ConcurrentLinkedQueue 是 Java 中的一个线程安全的无界队列实现。它基于无锁&#xff08;lock-free&#xff09;的算法&#xff0c;采用了一个高效的、非阻塞的、可伸缩并发控制机制。这使得在高并发场景下能够实现较高的吞吐量。 无界性质…

【单元测试】单元测试介绍

1 单元测试基础 1.单元测试&#xff1a;单元测试又称模块测试&#xff0c;属于白盒测试&#xff0c;是最小单位的测试。模块分为程序模块和功能模块。功能模块指实现了一个完整功能的模块&#xff08;单元&#xff09;&#xff0c;一个完整的程序单元具备输入、加工和输出三个…

React废弃componentWillMount和componentWillReceiveProps这两个生命周期方法

React废弃componentWillMount和componentWillReceiveProps这两个生命周期方法的原因主要涉及到React的内部机制变更、性能优化以及未来特性的支持。以下是对这两个问题的详细解答&#xff1a; 废弃componentWillMount的原因 异步渲染的引入&#xff1a; React 16开始引入了异步…

RabbitMQ 实现分组消费满足服务器集群部署

实现思路 使用扇出交换机&#xff08;Fanout Exchange&#xff09;&#xff1a;扇出交换机会将消息广播到所有绑定的队列&#xff0c;确保每个消费者组都能接收到相同的消息。为每个消费者组创建独立的队列&#xff1a;每个消费者组拥有自己的队列&#xff0c;所有属于该组的消…

开发 UEFI 驱动

服务型驱动的特点&#xff1a; 1&#xff09;在 Image 的入口函数中执行安装&#xff1b; 2&#xff09;服务型驱动不需要驱动特定硬件&#xff0c;可以安装到任意控制器上&#xff1b; 3&#xff09;没有提供卸载函数。 一个设备 / 总线驱动程序在安装时首先要找到对应的硬件…

《Python密码算法例程》

《Python密码算法例程》 一、哈希算法&#xff08;以MD5为例&#xff0c;虽然MD5安全性存在缺陷&#xff0c;但常用于简单示例&#xff09;1. 计算字符串的MD5哈希值2. 更安全的哈希算法 - SHA - 256 二、对称加密算法&#xff08;以AES为例&#xff09;1. AES加密和解密简单示…

java时间处理SimpleDateFormat详解

文章目录 常用构造函数日期格式模式常见用法1. 格式化日期2. 解析日期字符串 注意事项示例扩展&#xff1a;指定区域和时区 SimpleDateFormat 是 Java 中用于日期和时间格式化的类&#xff0c;属于 java.text 包。它允许开发者将日期对象格式化为字符串&#xff0c;或者将字符…

夜莺运维指南之故障自愈

注意: 夜莺v7版本已内置故障自愈, 只需要更给n9e下的config.yaml 文件有关ibex配置即可 所谓的告警自愈&#xff0c;典型手段是在告警触发时自动回调某个 webhook 地址&#xff0c;在这个 webhook 里写告警自愈的逻辑&#xff0c;夜莺默认支持这种方式。另外&#xff0c;夜莺还…

【oracle】大数据删除插入

文章目录 引言本文目标 Oracle大数据插入操作插入操作的场景和需求使用并行查询进行数据插入示例代码&#xff1a;创建新表并插入数据解释代码中的关键点 性能优化建议 Oracle大数据删除操作删除操作的场景和需求使用游标和批量处理进行数据删除示例代码&#xff1a;批量删除数…

深入浅出:序列化与反序列化的全面解析

文章目录 1. 引言2. 什么是序列化&#xff1f;2.1 为什么需要序列化&#xff1f; 3. 什么是反序列化&#xff1f;3.1 反序列化的重要性 4. 序列化与反序列化的实现4.1 JSON (JavaScript Object Notation)4.2 XML (eXtensible Markup Language)4.3 Protocol Buffers (Protobuf)4…

Windows命令行使用技巧(持续更新)

删除指定目录下指定后缀的文件 重要的事情说在前面&#xff1a;不能恢复&#xff0c;谨慎操作 今天大意了&#xff0c;导出sql文件的时候没指定目录&#xff0c;默认放到桌面上了&#xff0c;看着桌面上密密麻麻的sql文件&#xff0c;我人傻了&#xff0c;一个一个删不是办法…

LDR6500:音频双C支持,数字与模拟的完美结合

在当今数字化快速发展的时代&#xff0c;音频设备的兼容性和性能成为了用户关注的重点。LDR6500&#xff0c;作为乐得瑞科技精心研发的USB Power Delivery&#xff08;PD&#xff09;协议芯片&#xff0c;凭借其卓越的性能和广泛的应用兼容性&#xff0c;为音频设备领域带来了新…

python rstrip 的迷惑行为

在项目中&#xff0c;我需要把字符串末尾的一部分去掉&#xff0c;类似截断&#xff0c;我用ide的随笔提示&#xff0c;发现了rstrip这个方法&#xff0c;然后我试了下&#xff0c;满足我的需求&#xff0c;但在测试过程中&#xff0c;我发现了rstrip的一些行为很让我迷惑。 开…

计算机网络编程(Linux):I/O多路转接之 select,poll

I/O多路复用&#xff08;I/O Multiplexing&#xff09;是一种高效的网络编程技术&#xff0c;允许一个线程同时监控多个文件描述符的状态&#xff0c;当某个文件描述符就绪时进行相应处理。这种技术在高并发服务器中广泛使用。本文将介绍I/O多路复用的核心概念及在Linux中的实现…

【原生js案例】webApp实现鼠标移入移出相册放大缩小动画

图片相册这种动画效果也很常见&#xff0c;在我们的网站上。鼠标滑入放大图片&#xff0c;滑出就恢复原来的大小。现在我们使用运动定时器来实现这种滑动效果。 感兴趣的可以关注下我的系列课程【webApp之h5端实战】&#xff0c;里面有大量的css3动画效果制作原生知识分析&…

Spring Boot助力,一键解锁招聘全流程信息精细化管理

2系统相关技术 2.1 Java语言介绍 Java是由SUN公司推出&#xff0c;该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称&#xff0c;也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景&#…