小结:PHP编程过程中应当注意的各种注意事项

  最近一段时间,PHP凭借其功能强大,简单易用的特点被越来越多的人们所喜爱和接受,成为目前最为流行的脚本编程语言之一。本文将结合用户在使用PHP过程中经常容易出现的问题,包括语法错误,程序运行错误以及逻辑错误等展开详细的介绍,希望能够对那些目前正在学习PHP语言的用户有所帮助。此外,本文还将会在文章的结束部分对PHP编程过程中应当注意的各种事项加以汇总,供读者参考。

  PHP脚本语言所具有一个显著的特点就是能够自动生成变量实例,不要求用户对所需要使用的变量进行声明。该特点既有值得推崇之处,但是同时也为用户所编写的脚本程序埋下了隐患。从好的方面来说,用户不再需要象使用C语言那样,在程序的开头对每一个将要在程序中使用的变量进行声明;但是,现在用户必须非常小心每一个变量名称的正确拼写,否则就可能会在无意当中创建了新的变量。有些编程语言,例如PERL等,可以记录下程序中只使用过一次的变量的信息,根据用户的预先设置发出警告提示。此外,PERL还提供了一个功能十分强大的调试器。截止到4.0.2版本,PHP语言中还没有包含调试器。但是这并没有影响到PHP语言的流行和推广。PHP提供了非常广泛的功能,即使与象C语言这样成熟的编程语言相比也毫不逊色。可以说,PHP是目前使用最方便,对WEB支持功能最完善的脚本语言之一。

  下面,就让我们言归正传,来看一看在PHP编程过程容易出现哪些问题,以及相应的应当采用什么样应对措施。

  分号的使用正象我们平时写文章时必须要在每一句话的结尾处加上句号一样,PHP要求程序中的每一条语句都必须使用分号“;”结束。这是一条最基本的语法规则,但是同时也最容易出现问题。我们在编写程序时,很少会一行一行的检查是否漏掉了分号,但是一旦出现任何一处疏忽,解析程序就回立刻发出错误报告。有时,报告中可能会包含出现问题的语句行数。

  <?php
  $Output="Hello World";
  echo $Output
  $Other="Blah";
  print $SomeMoreText;
  ?>

  上述代码的第二行“echo $Output”的结尾处我们漏掉了一个分号,如果执行该脚本将会产生如下错误提示:

  Parse error: parse error, expecting `’,’’ or `’;’’ in /usr/local/apache/htdocs/test.php on line 8报告虽然指出了出现错误的原因,即漏掉了逗号“,”或分号“;”,但是却将出现问题的语句定在了第八行。因为这段代码非常简单,我们很容易就可以找到真正出现错误的地方。但是,如果程序非常复杂时,要想顺利的找出错误就有些困难了。

  根据笔者以往的经验,建议采用以下方法:

  如果当错误报告中指出的语句没有明显的问题时,可以检查位于该语句之前的其它指令行(不包括注释行)是否正确。如果仍然没有找到错误,可以将报告中指出的语句行注释掉(在该语句行的最前面加上“//”或“#”注释符号)或者改为用户能够确保完全没有问题的其它语句。之后,重新运行程序,如果错误提示仍然指向同一行,就表明真正有问题的语句应当位于被注释掉的语句行的前面。按照上述方法逐一检查位置靠前的每一行指令,直到错误提示信息发生改变。这时,我们就成功的挖出了真正的罪魁祸首。

  变量的问题与其它编程语言要求用户显式声明变量不同,PHP语言允许用户自动使用所有变量而不必进行事先的声明。变量名称的拼写错误成为困扰PHP用户的一个大问题。

  <?php
  function Combine ($FirstHalf, $SecondHalf)
  {
   $Combined_String=$FirstHalf.$SecondHalf;
   return $Combined_String;
  }
  $FirstString="WDVL - ";
  $SecondString="Illustrated Encyclopedia";
  $Combine_Result=Combine ($FirstString, $SecondString);
  print $Combined_Result;
  ?>

  当我们运行以上脚本时,将会看到由于程序没有返回任何数据而出现的错误提示。这里,我们为了更好的说明问题选择了一个非常直观的例子。在现实当中,有时问题并不会这么简单。相信大家都已经找到了出现问题的原因,那就是“print $Combined_Result;”中的变量名称“$Combined_Result”应当改为“$Combine_Result”。

时间: 2024-11-29 15:18:51

小结:PHP编程过程中应当注意的各种注意事项的相关文章

c#代码-C#编程过程中遇到的难题

问题描述 C#编程过程中遇到的难题 我的界面form_load一打开适合一张数据库里面的退货表联系上了的,但是如果我想要查询 订单表的话,怎么做呢?而且是不换界面的,因为我的界面使用的是数据网格来显示表格,当我点击查询的订单表的时候,总是会弹出ConnectionString尚未初始化这个问题?怎么解决呢?以下是我查询的代码,求指导 SqlCommand sqlCommand = new SqlCommand(); SqlConnection myConnection = new SqlConn

python初学者编程过程中遇到问题

问题描述 python初学者编程过程中遇到问题 用python编写了个Person类:''Created on 2014年9月19日 @author: Administrator''' class Person: def __init__(selfnameagesalary=0job=None): self.name=name self.age=age self.salary=salary self.job=jobdef lastName(self): return self.name.spli

c++-C++仿真编程过程中遇到的inaccessible问题

问题描述 C++仿真编程过程中遇到的inaccessible问题 在LTE同频干扰仿真C++编写过程中遇到的一个问题,烦请C++编程达人帮我解答.谢谢. 第一个文件:Bs.h /*这个文件声明三个类,Sector BS 和BS_V,其中BS和Sector表示干扰方的基站和扇区,BS_V和SECTOR_V表示*/ #ifndef BS_H #define BS_H #include"Ue.h" #include"Random.h" #include"Basi

编译错误-java网络socket编程过程中遇到的问题

问题描述 java网络socket编程过程中遇到的问题 运行代码 import java.io.*; import java.net.*; public class InetAddressDemo { public static void main(String[] args) { Socket socket = null; InputStream is = null; OutputStream os = null; String serverIP = "127.0.0.1"; int

c++-求解答关于C++编程过程中的一个报错

问题描述 求解答关于C++编程过程中的一个报错 fatal error C1083: 无法打开包括文件:"Win32.Infrastructure.h": No such file or directory 报错如上,Win32.Infrastructure.h这个头文件是不是系统提供的呢?怎么解决这个错误,谢谢 解决方案 你自己搜索一下不就知道自己有没有这个头文件,不过我认为这个不是系统文件.

积累编程过程中的经验

我已经无法容忍自己在编程学习的路上缓慢的进步速度了,可是自己又总是很低效的学习,所以从现在开始,在该系列博客中,积累着记录在编程过程中的经验和反思,希望能真正让自己快速成长起来. 下定决心,保持耐心,专注当下,坚定去做而不是去茫然恐惧. 习得 学习他人代码最好的方式就是进到程序中单步去调试,了解大体的框架和流程,然后再深入的去研究 C语言中strlen()的陷阱 strlen()的作用是取得字符串的有效字符个数,但是当赋给字符串的字符大于该字符串的长度时,有可能将字符数组最后的'\0'标识覆盖,

《Python之禅》中对于Python编程过程中的一些建议_python

围绕一门语言,学习它的文化精髓,能让你成为一名更优秀的程序员.如果你还没读过Python之禅(Zen of Python) ,那么打开Python的命令提示符输入import this,列表中的每一项你都可以在这里找到相对应的例子. 吸引我注意力的一条是: 优雅胜于丑陋 (Beautiful is better than ugly) 看下面例子: 一个带有数字参数的list函数其功能是返回参数中的奇数可以分开写:   #--------------------------------------

对Python新手编程过程中如何规避一些常见问题的建议_python

这篇文章收集了我在Python新手开发者写的代码中所见到的不规范但偶尔又很微妙的问题.本文的目的是为了帮助那些新手开发者渡过写出丑陋的Python代码的阶段.为了照顾目标读者,本文做了一些简化(例如:在讨论迭代器的时候忽略了生成器和强大的迭代工具itertools). 对于那些新手开发者,总有一些使用反模式的理由,我已经尝试在可能的地方给出了这些理由.但通常这些反模式会造成代码缺乏可读性.更容易出bug且不符合Python的代码风格.如果你想要寻找更多的相关介绍资料,我极力推荐The Pytho

PHP编程过程中需要了解的this,self,parent的区别_php技巧

{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object Oriented Programming)现已经成为编程人员的一项基本技能.利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划web开发构架都是很有意义的. PHP5经过重写后,对OOP的支持额有了很大的飞跃,成为了具备了大部分面向对象语言的特性的语言,比PHP4有了很多的面向对象的特性.这里我主要谈的是 this,self,parent 三个关键字之间的区别.从字面上来理解,