PHP易犯错误整理

 分类:PHP 阅读 (1,645)  No Responses »
8月 182013
 

  1. 在子函数中引用全局变量,错误描述:在一个公共文件中定义了一个$dblink对象用于访问数据库,在另外一个文件FileA中require了这个公共文件,同时在FileA中定义了一个子函数GetUserId(),在此函数中需要访问数据库读取数据,访问数据库的时候直接使用了$dblink对象,发现根本取不到相应的数据,访问数据库不成功。

  后经gg搜索,明白了在子函数中是不能直接使用公共变量的,所以必须把$dblink对象传入这个函数中才可以使用,因此解决办法是把GetUserId()改为GetUserId($tmpdblink),再使用时把$dblink对象传入此函数。

  2. PHP中连接字符串时使用“+”操作符,PHP中的“+”操作符可用于数字型数据或者数组的操作,但是不能用于字符串的连接,所以一定要注意,因为很多其他的编程语言是用“+”进行连接字符串的,所以很容易书写错误。PHP中使用“.”来进行字符串连接。

  3. PHP写函数的时候,定义时传入的变量也要使用$以标识为变量。今天写了一个函数,定义时变量直接写的变量名字convertStatus(status),没加&,导致整个页面空白,经检查发现是这个问题,改正后convertStatus($status)问题解决。

  4. 在php文件中,引用了某个php文件(用require xxx.php),但是显示时此文件布局前面总是有一空行,用chrome和IE的开发人员工具查看,会有几个字符,但页面上没显示。经研究,是因为xxx.php文件使用的是Utf8有BOM格式,文件的前几个字节后置上utf8的标志,浏览器则把那几个字节认为了是字符来处理。

  处理方式:使用notepad++打开文件,选择格式-〉转为utf8无BOM格式,保存重新上传后问题解决。

  此问题也可能会在html或者其他网页格式文件中出现。

  5. PHP中使用多个连接的问题,使用相同配置的多个连接时,总会使用最后一个连接的DB