PHP编程语言学习中常见的低级错误
PHP是一种简单而强大的开源脚本语言,不过人们在编写PHP(或者编程语言)代码时,我们往往在学习编程语言PHP的过程中常会犯一些低级错误,下面简单为大家例举些编程入门教程学习中常见的问题吧。
第一、变量声明(Variable declaration)
假如在一条语句中声明一个变量,如下所示:$var=’value’;编译器首先会求出语句右半部分的值,恰恰正是语句的这一部分往往会引发一些不必要的错误。如果使用的语法不正确的话,过程中就会出现解析错误的问题。
第二、解析错误(Parse error)
好像,Parse error:解析错误,unexpected T_WHILE in c:program filesapache groupapachehtdocsscript.php on line 19每次确定了前一错误时,解析错误一个接一个地不断出现,PHP在第一个解析错误之后就停止执行脚本。而且,解析错误具有很少的信息,几乎不报告错误所在的行号。比如表达式中使用了预定义的关键字,例如:while=10;while就是一个预定义的关键字,不能分配给它一个值。预定义关键字包括while、function等,我们不能使用这些预定义关键字来命名变量,否则编译器就会报错。其中,T_IF代表if(),T_WHILE代表while(),T_FOR代表for()等。
第三、常见的错误(A common mistake)
还有一些常见的错误,比如语句没有使用分号(;)结束,字符串中缺少引号等。另外就是,没有使用大括号(})结束一个函数或者一个循环,比如:function UselessFunction(){for($i 第四、MySQL错误(MySQL Error)
另一类的错误信息就是MySQL错误,这常常使的编程语言学习PHP的新手感到颇为头疼,比如:Warning:Supplied argument is not a valid MySQL result resource in…上面所报告有错的一行可能是:while($row=mysql_fetch_array($result)){}参数$result并不是一个有效的资源,因为查询失败,将无法处理mysql_fetch_array。任一查询的语法无效或者与数据库的连接失败,应该到MySQL控制台进行测试。
第五、注意echo和print的区别(Note the difference between the echo and print)
PHP中echo和print都是输出的作用,但是两者之间还是有细微的差别。echo输出后没有返回值,但print有返回值,当其执行失败时返回flase。因此可以作为一个普通函数来使用,例如执行$r=print”Hello World”;变量$r的值将为1。而且代码中echo语句的运行效率要略快于print语句。
第六、注意空字符串(”)和NULL的区别(Note the difference between an empty string (”) and a NULL)
PHP中空字符串和NULL都是以值为0存储的,但是他们的类型并不一样,前者是string,而后者是NULL,可见字符串(”)、NULL值相等但类型不等。
第七、分清==(等于)和===(全等于)的区别
两者都属于比较运算符,==(等于)只比较值是否相等,而===(全等于)则不但比较值是否相等,还会比较类型是否相等,它更为严格。
第八、分清include与require的区别(Distinguish the difference between include and require the)
include()与require()的功能也基本相同,但在用法上也有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。例如在下面代码中,如果变量$a为真,则将包含文件a.php:if($a){include(“a.php”);}而require()则和include()不同,不管$a取何值,下面的代码都会把文件a.php包含:if($a){require(“a.php”);}在错误处理方面,使用include语句,如果发生包含错误,程序将跳过include语句,虽然会显示错误信息但是程序还是会继续执行。但是,requre语句会提示一个致命错误。
第九、注意isset和empty的区别(Note the difference between isset and empty of)
empty是判断一个变量是否为“空”,而isset则是判断一个变量是否已经被设置。
第十、分清self::和this–>的区别
你在访问PHP类中的成员变量或方法时,如果被引用的变量或者方法被声明成const(常量)或者static(静态属性),那么就必须使用域操作符::,而如果被引用的变量或者方法没有被声明成const或者static,那么就使用指向操作符->。
尽管有时候在工作学习中一些常犯的错误是很难避免的,我们唯有能做的就是多总结多练习,尽量避免这些新手学习编程语言中常见的错误,降低其发生的概率,这样才能让我们在学习PHP编程中感受到编程语言的魅力,让我们的工作学习更上一层楼。