PHP语法的替代语法(另类写法)

1. 在研究博客模板(如 TypechoWordPressZ-Blog等博客程序的)、论坛模板(如 DiscuzPHPwind等论坛程序的)及其它PHP程序模板文件中,常常会看到一些奇怪的语法,还质疑能不能正常运行,答案当然是肯定的:“能运行”,比如:

<?php if(isset($_GET['host']) ==false): ?>
    $_GET['host']变量是<font color="red">空的</font>
<?php endif; ?>

对于相当一部分PHP爱好者来说根本没见过啊,这些是什么东西呢?难道是那些博客的开发者自己搞的仿PHP的模板语言?

非也,其实这些都是PHP的语法,只不过不常用而已,这些都是PHP流程控制的 替代语法

这里就就给大家详细说一下 PHP流程控制 的替代语法。什么是 替代语法

简单的说,这是一些PHP语法的另类写法。

2. PHP中,有哪些语法有替代语法?

流程控制(包括 if, while, forforeach, switch)这几个语句有替代语法。

2-1. 替代语法的基本形式:

左花括号({)换成冒号(:),把右花括号(})分别换成 endif;endwhile;endfor;endforeach; 以及 endswitch(注意,上面说到的这些符号都是英文输入状态下的,而不是中文输入状态下的。);

2-2. 举个例子吧:

<?php $num = '-1024'; ?>
<?php if ($num < '0'): ?>
变量 $num 是负数
<?php endif; ?>

上面的语句等同于.

<?php $num = '-1024'; ?>
<?php if ($num < '0') { ?>
变量 $num 是负数
<?php } ?>

3. 为什么纯PHP代码里面几乎看不到?

这些语法有点不符合C家族的传统有点另类,大家不大习惯于这种语法,而且不是很方便。

4. 大家都不习惯,而且这么另类要他有什么用?

存在就是合理,它自有它的用处,这些语法能发挥的地方是在PHP和HTML混合页面的代码里面(如上述第 1 点),好处如下:

1.使HTML和PHP混合页面代码更加干净整齐,有代码洁癖的朋友最惧怕的就是乱七八糟的混合代码,有了这些没有花括号的替代语法,各位爱干净的朋友开心到尿震。

2.流程控制逻辑更清晰,代码更容易阅读。如果要改别人的 PHPHTML 混合代码,打开发现,WC!太TMD垃圾了!如果用替代语法,我想再垃圾的程序开发人员也不至于写的太乱吧。

3.一些从 ASP 等其他类 basic 语言家族转来的朋友,会更容易使用 PHP

5. 举几个上面说的替代语法:

5-1. if else 语句:

替代语法写法:

<?php $num = '1024'; ?>
<?php if ($num == '1024'): ?>
  变量 <code>$num</code> 等于 <kbd>1024</kbd>
<?php else: ?>
  变量 <code>$num</code> 不等于 <kbd>1024</kbd>
<?php endif; ?>

原始语法写法:

<?php $num = '1024'; ?>
<?php if ($num == '1024'){ ?>
  变量 <code>$num</code> 等于 <kbd>1024</kbd>
<?php }else{ ?>
  变量 <code>$num</code> 不等于 <kbd>1024</kbd>
<?php } ?>

5-2. if elseif else 语句:

替代语法写法:

<?php $num = '512'; ?>
<?php if ($num == '1024'): ?>
  变量 <code>$num</code> 等于 <kbd>1024</kbd>
<?php elseif ($num == '2048'): ?>
  变量 <code>$num</code> 等于 <kbd>2048</kbd>
<?php else: ?>
  变量 <code>$num</code> 不等于 <kbd>1024</kbd>,也不等于 <kbd>2048</kbd>
<?php endif; ?>

原始语法写法:

<?php $num = '512'; ?>
<?php if ($num == '1024'){ ?>
  变量 <code>$num</code> 等于 <kbd>1024</kbd>
<?php }elseif ($num == '2048'){ ?>
  变量 <code>$num</code> 等于 <kbd>2048</kbd>
<?php }else{ ?>
  变量 <code>$num</code> 不等于 <kbd>1024</kbd>,也不等于 <kbd>2048</kbd>
<?php } ?>

5-3. while 循环语句:

替代语法写法:

<?php $x=1; ?>
<?php while($x<=5): ?>
      数字是:<?php echo $x; ?> <br/>
  <?php $x++; ?>
<?php endwhile; ?> 

原始语法写法:

<?php $x=1; ?>
<?php while($x<=5){ ?>
      数字是:<?php echo $x; ?> <br/>
  <?php $x++; ?>
<?php } ?> 

5-4. for 循环语句:

替代语法写法:

<?php for ($x=0; $x<=10; $x++): ?>
   数字是:<?php echo $x; ?> <br/>
<?php endfor; ?>

原始语法写法:

<?php for ($x=0; $x<=10; $x++) { ?>
   数字是:<?php echo $x; ?> <br/>
<?php } ?>

5-4. foreach 循环语句:

替代语法写法:

<?php  $colors = array("红色", "绿色", "蓝色", "黄色"); ?>
<?php foreach ($colors as $value): ?>
    <?php echo $value; ?> <br/>
<?php endforeach; ?>

原始语法写法:

<?php  $colors = array("红色", "绿色", "蓝色", "黄色"); ?>
<?php foreach ($colors as $value) { ?>
    <?php echo $value; ?> <br/>
<?php } ?>

5-5. switch 语句:

替代语法写法:

<?php
$favnumber="1";

switch ($favnumber):
   case "1":
     echo "你最喜欢的数字是 1 !";
     break;
   case "2":
     echo "你最喜欢的数字是 2 !";
     break;
   case "3":
     echo "你最喜欢的数字是 4 !";
     break;
   default:
     echo "你最喜欢的数字不是 1、2或3 !";
endswitch;
?>

原始语法写法:

<?php
$favnumber="1";

switch ($favnumber) {
   case "1":
     echo "你最喜欢的数字是 1 !";
     break;
   case "2":
     echo "你最喜欢的数字是 2 !";
     break;
   case "3":
     echo "你最喜欢的数字是 4 !";
     break;
   default:
     echo "你最喜欢的数字不是 1、2或3 !";
}
?>

以上就是替代语法的一些示例了,代码都是我一一打出来的,花了半个多小时吧.... 这些替代语法无非就是 2-1 所提到的:

左花括号({)换成冒号(:),把右花括号(})分别换成 endif;endwhile;endfor;endforeach; 以及 endswitch(注意,上面说到的这些符号都是英文输入状态下的,而不是中文输入状态下的。);

推荐个在线运行 PHP代码 的网站(并非广告,当然你也可以自己去找):www.dooccn.com/php

本文章参考了一些资料来写的,再经由我整理的,网转载注明出处,谢谢!


如无特别声明,该文章均为 现在网NowTime.cc)原创,转载请遵循 署名-非商业性使用 4.0 国际(CC BY-NC 4.0) 协议,即转载请注明文章来源。


标签: PHP, 语法

赞 (0)

添加新评论