现在位置: 首页 > 博客文章 > 电脑相关 > IT开发 > 开发语言 > PHP > 正文
PHP语法有些地方真诡异
2015年05月29日 16:12:36 PHP ⁄ 共 1748字 暂无评论 ⁄ 被围观 2,768次

PHP——朋友和朋友^^

其实,PHP——“Hgpertext Preprocessor”或“Personal Home Page Tools”的简写,是一种服务器端的、跨平台的、HTML嵌入式的脚本语言。

在学习其基础语法的过程中,有些地方的语法真让人费解!设计者为什么会这么设计了,各种写法变体,又和 C、Java 等这些语言不一致,很让人头疼,记忆起来确实费劲!!!

一、全局变量。

在 PHP 中,代码开头定义的变量,在后面的自定义方法中不能直接用,比如:

Code   ViewPrint
  1. <?php  
  2.     $a = 1;  
  3.   
  4.     function myFc() {  
  5.         echo "a = $a";  
  6.     }  
  7.       
  8.     myFc();  
  9. ?>  

 

运行后直接回报如下错误:

( ! ) Notice: Undefined variable: a in E:\wamp\www\t1.php on line 5

 

修改为:在方法中声明变量为全局的。因为 PHP 不像其它语言那样,方法前已声明的变量已经是全局变量了。改正后:

Code   ViewPrint
  1. <?php  
  2.     $a = 1;  
  3.   
  4.     function myFc() {  
  5.         Global $a;  
  6.         echo "a = $a";  
  7.     }  
  8.       
  9.     myFc();  
  10. ?>  

 

二、可替换的控制结构语法。

PHP 中,对于所有控制结构,还有一个可替换的语法形式。它由替换开始花括号({)的冒号(:)以及替换关闭花括号(})的新关键字(endif、endswitch、endwhile、endfor、endforeach)组成。

比如说,while 循环的奇怪写法如下:

Code   ViewPrint
  1. <?php  
  2.     $i = 0;  
  3.     while($i < 5) :  
  4.         echo "第 ".++$i." 点说明<br />\n";  
  5.     endwhile;  
  6. ?>  

 

三、标识符。

PHP 中标识符也就是变量的名称,函数和类的名称也算是标识符。但在 PHP 中,变量的标识符是区分大小写的,但操蛋的是,对于这个规则,函数名称确是个例外,函数名称可以是任意大小写的。如:

Code   ViewPrint
  1. <?php  
  2.     $abc = 2;  
  3.     echo $abc."<br />";  
  4.   
  5.     function abcd() {  
  6.         echo 'abcd...';  
  7.     }  
  8.   
  9.     AbCd();  
  10. ?>  

 

另外,在这里顺便说一下 PHP 中的 foreach 语句。在 PHP 中,使用 foreach 语句对数组遍历以及循环,有时要明显快于使用 for 语句,这是由于 PHP 在内部为 foreach 做了非常多的优化工作,因此在平时开发中请尽量使用 foreach 来完成工作。用法如下:

Code   ViewPrint
  1. <?php  
  2.     $links = array("www.menglanglang.cn""langlang.sinaapp.com""dlhdax.sinaapp.com");  
  3.     foreach($links as $link) {  
  4.         echo "--> <a href=\"http://$link\">$link</a><br />";  
  5.     }  
  6. ?>  

 

还有一种特殊形式的 foreach 语句专门用来给关联数组处理用,用法如下:

Code   ViewPrint
  1. <?php  
  2.     $links = array("www.menglanglang.cn" => "郎图腾""langlang.sinaapp.com" => "朗朗分享""dlhdax.sinaapp.com" => "大连海大安信科技有限公司");  
  3.     foreach($links as $link => $name) {  
  4.         echo "--> <a href=\"http://$link\">$link</a>(".$name.")<br />";  
  5.     }  
  6. ?>  

 

给我留言

留言无头像?