当前位置: 首页 > article >正文

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

在这里插入图片描述


http://www.kler.cn/a/428619.html

相关文章:

  • Oracle 深入学习 Part 14:Managing Password Security and Resources(管理密码安全性和资源)
  • python milvus及curl命令进行query请求
  • 【Java面试】RabbitMQ
  • STM32补充——FLASH
  • TongESB7.1.0.0如何使用dockercompose运行镜像(by lqw)
  • MongoDB基本操作
  • quartz 架构详解
  • 算法-字符串-43.字符串相乘
  • 【并集查询】.NET开源 ORM 框架 SqlSugar 系列
  • G15沈海高速茶白高架自动化监测
  • 机器学习之Friedman检验
  • 通过华为鲲鹏认证的软件产品如何助力信创产业
  • 网络原理(HPPT/HTTPS)
  • GA-Kmeans-Transformer-GRU时序聚类+状态识别组合模型,创新发文无忧!
  • 力扣打卡10:K个一组翻转链表
  • 【前端学习笔记】Vue2基础
  • Kafka服务器的简单部署以及消息的生产、消费、监控
  • three.js透光率实现原理归纳
  • 论文阅读笔记:Adaptive Rotated Convolution for Rotated Object Detection
  • 最短路问题
  • 前端(三)html标签(2)
  • 数据中心可视化提升运维新高度
  • 多项式拟合之Math.NET Numerics
  • [Maven]下载安装、使用与简介
  • 【框架】环境切换集成封装
  • CSS3 布局样式及其应用