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+1
    echo "电击小子 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!!!!
欢迎各位在评论区踊跃讨论,积极提出问题,解决困惑!!!

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

生成:安卓证书uniapp

地址&#xff1a; https://ask.dcloud.net.cn/article/35777 // 使用keytool -genkey命令生成证书&#xff1a; 官网&#xff1a; keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore ----------------------------------…

Vue.js:代码架构组成与布局设置

前言&#xff1a;最近在弄一个开源的管理系统项目&#xff0c;前后端分离开发&#xff0c;这里对前端的Vue框架做一个总结&#xff0c;有遗漏和错误的地方欢迎大家指出~ &#x1f3e1;个人主页&#xff1a;謬熙&#xff0c;欢迎各位大佬到访❤️❤️❤️~ &#x1f472;个人简介…

【优选算法-滑动窗口】长度最小的子数组、无重复字符的最长子串、最大连续1的个数、将x减为0的最小操作数、水果成篮

一、长度最小的子数组 题目链接&#xff1a; 209. 长度最小的子数组 - 力扣&#xff08;LeetCode&#xff09; 题目介绍&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, .…

appium学习之二:adb命令

1、查看设备 adb devices 2、连接 adb connect IP:端口 3、安装 adb install xxx.apk 4、卸载 adb uninstall 【包名】 5、把对应目录下的1.txt文件传到手机sdcard下 adb push 1.txt /sdcard 6、进入对应的设备里 adb shell 7、切入sdcard目录 cd /sdcard 8、ls 查…

算法——差分

差分可以看作是前缀和的逆运算&#xff0c;前缀和可以帮我们快速得到某个区间的和&#xff0c;而差分就是我们将原数组看作是一个前缀和数组&#xff08;q[]&#xff09;我们去构造一个差分数组&#xff08;c[]&#xff09; 一维差分 使存在如下关系&#xff1a; q[i] c[1]…

使用 EasyExcel 提升 Excel 处理效率

目录 前言1. EasyExcel 的优点2. EasyExcel 的功能3. 在项目中使用 EasyExcel3.1 引入依赖3.2 实体类的定义与注解3.3 工具类方法的实现3.4 在 Controller 中使用 4. 总结5. 参考地址 前言 在日常开发中&#xff0c;Excel 文件的处理是不可避免的一项任务&#xff0c;特别是在…

健康管理系统(Koa+Vue3)

系统界面(源码末尾获取) 系统技术 Vue3 Koa Nodejs Html Css Js ....... 系统介绍 系统比较简单,轻轻松松面对结业课堂作业.采用的是基于nodejs开发的Koa框架作为后端,采用Vue框架作为前端,完成快速开发和界面展示. 系统获取 啊啊啊宝/KoaVue3https://gitee.com/ah-ah-b…

python进阶-05-利用Selenium来实现动态爬虫

python进阶-05-利用Selenium来实现动态爬虫 一.说明 这是python进阶部分05&#xff0c;我们上一篇文章学习了Scrapy来爬取网站&#xff0c;但是很多网站需要登录才能爬取有用的信息&#xff0c;或者网站的静态部分是一个空壳&#xff0c;内容是js动态加载的,或者人机验证&…

day10性能测试(2)——Jmeter

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、LoadRunner vs Jmeter 1.1 LoadRunner 1.2 Jmeter 1.3 对比小结 2、Jmeter 环境安装 2.1 安装jdk 2.2 安装Jmeter 2.3 小结 3、Jmeter 文件目录结构 4、Jmeter默认配置修改 5、Jmeter元件、组…

架构15-服务网格

零、文章目录 架构15-服务网格 1、透明通信的涅槃 &#xff08;1&#xff09;服务网格 概念 服务网格是一种处理程序间通信的基础设施&#xff0c;主要由数据平面和控制平面组成。它通过边车代理和控制程序管理程序间的通信&#xff0c;弥补了容器编排系统对分布式应用细粒…

day08 接口测试(4)知识点完结!!

【没有所谓的运气&#x1f36c;&#xff0c;只有绝对的努力✊】 目录 1、postman读取外部数据文件&#xff08;参数化&#xff09; 1.1 数据文件简介 1.2 导入外部数据文件 1.2.1 csv文件 1.2.2 导入 json文件 1.3 读取数据文件数据 1.4 案例 1.5 生成测试报告 2、小…

2024年11月HarmonyOS应用开发者高级认证全新题库

注意事项&#xff1a;切记在考试之外的设备上打开题库进行搜索&#xff0c;防止切屏三次考试自动结束&#xff0c;题目是乱序&#xff0c;每次考试&#xff0c;选项的顺序都不同&#xff0c;作者已于2024年11月22日又更新了一波题库&#xff0c;题库正确率99%&#xff01; 新版…

【Python网络爬虫 常见问题汇总】

目录 1. 爬取图片出现403解决办法&#xff1a;设置请求头中的Referer字段 2.关于干坏事的问题后续不定期更新 欢迎共同探讨学习进步 1. 爬取图片出现403 问题出自案例9&#xff0c;已解决。 【Python网络爬虫笔记】9- 抓取优美图库高清壁纸 当在爬取图库图片时遇到 403 错误…

《探索形象克隆:科技与未来的奇妙融合》

目录 一、什么是形象克隆 二、形象克隆的技术原理 三、形象克隆的发展现状 四、形象克隆的未来趋势 五、形象克隆的应用场景 六、形象克隆简单代码案例 Python 实现数字人形象克隆 Scratch 实现角色克隆效果&#xff08;以猫为例&#xff09; JavaScript 实现 Scratc…

Mac软件推荐

Mac软件推荐 截图SnipasteXnipBob 快捷启动Raycast 系统检测Stats 解压缩The UnarchiverKeka&#xff08;付费&#xff09; 视频播放IINA 视频下载Downie&#xff08;付费&#xff09; 屏幕刘海TopNotchMediaMate&#xff08;付费&#xff09;NotchDrop&#xff08;付费&#x…

Linux——linux系统移植

创建VSCode工程 1、将NXP官方的linux内核拷贝到Ubuntu 2、解压缩tar -vxjf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 NXP官方开发板Linux内核编译 1、将.vscode文件夹复制到NXP官网linux工程中&#xff0c;屏蔽一些不需要的文件 2、编译NXP官方EVK开发板对应的Linux系统…

TikTok运营选什么网络?要用原生IP吗?

不管是跨境电商运营还是个人IP打造&#xff0c;TikTok都是必不可少的一个大流量平台。但运营TikTok必然要面临网络问题&#xff0c;如果没有妥当的解决方案&#xff0c;不仅难以获取流量&#xff0c;还可能面临封号的风险。因此&#xff0c;选择可靠的网络并合理使用是非常重要…

Spring 基础

什么是 Spring 框架? Spring 是一款开源的轻量级 Java 开发框架&#xff0c;旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说 Spring 框架指的都是 Spring Framework&#xff0c;它是很多模块的集合&#xff0c;使用这些模块可以很方便地协助我们进行开发&#…

Redis篇-5--原理篇4--Lua脚本

1、概述 Redis 支持使用 Lua 脚本来执行复杂的操作&#xff0c;这为 Redis 提供了更强的灵活性和性能优化能力。通过 Lua 脚本&#xff0c;你可以在服务器端执行一系列命令&#xff0c;而不需要多次往返客户端与服务器之间&#xff0c;从而减少了网络延迟并提高了效率。此外&a…

【数据库】关系代数和SQL语句

一 对于教学数据库的三个基本表 学生S(S#,SNAME,AGE,SEX) 学习SC(S#,C#,GRADE) 课程(C#,CNAME,TEACHER) &#xff08;1&#xff09;试用关系代数表达式和SQL语句表示&#xff1a;检索WANG同学不学的课程号 select C# from C where C# not in(select C# from SCwhere S# in…