您的位置:

php开发遇到的问题和错误(php开启报错)

本文目录一览:

北大青鸟设计培训:PHP的几大认知误区?

要知道没有任何一款编程语言是可以用来实现全部的项目的,所以才会有各种各样的编程语言出现。

今天,广州java课程就一起来了解一下,在大多数软件开发工程师心目中,PHP编程开发语言都有哪些被人误解的地方。

1.PHP是一门面向对象语言,但不是基于OOPS这是完全不正确的理解,尤其是Java程序员,他们认为PHP不是基于OOPS;但他们会发现许多面向对象的特征,比如,接口、方法、抽象对象等。

说实话,初始版的PHP没有太多的面向对象功能,但PHP5添加很多面向对象技术。

更重要的是,你也许会好奇,为什么Bootstrap代码在PHP里会变得那么简单,这个得归功于PHP与OO的结合。

2.PHP无法实现特定的功能这个误解听起来比较模糊,但有许多开发者认为PHP不能实现内存访问等其他功能。

但事实是,PHP是一门可扩展的语言,你只需用C或C++编写一个扩展,进行集成就OK了。

或者,你无需创建,网上已经有成千上百个扩展可供使用,你可以根据需要,直接拿来使用。

3.PHP不安全既然你认为它是不安全的,那为何不为它编写安全的代码呢。

我承认,PHP里是有大量不安全的代码,但作为程序员,我们应该尽量编写可靠安全的代码。

如果拿PHP与.NET进行比较,PHP肯定是失败的。

但如果你是一个技术娴熟的程序员,你无需安全“帮助”。

包括日常的安全问题,但如果他们的路径是动态生成的,那你就得当心了。

当然,如果你精通所有的指令,它或许会变的更安全。

4.不适合做大型应用程序一门语言之所以能用来构建大而复杂的应用,其自身要具有一定的可靠性和高性能,而可扩展的PHP并不符合。

但是,如果你设计和开发的应用程序架构很稳定,那应用程序的性能和扩展又会有什么问题呢?事实是,一些知名的网站都是采用PHP设计的,比如Facebook、Wikipedia、和Yahoo!等,它们都能工作的很好。

5.PHP只能用于网站开发的确,使用PHP进行网站开发是很普遍的。

但命令行接口(CLI:CommandLineInterface)可以让应用程序运行在非Web服务器上。

虽然有些应用程序对CPU的要求很高,但通过执行PHPCLI,仍然可以采用PHP进行开发和运行。

更重要的是,如果你想使用PHP开发桌面应用程序,只需使用Windows特定扩展即可搞定。

6.开发过程缓慢对于这样的误解,我实在不知道是从哪里传出来的。

有可能你编写的PHP代码很凌乱、并且里面充斥着大量的MySQL语句(它们虽然很有意义,但真不应该放在那里)。

而事实上,PHP有大量的框架可供开发者使用,合理使用它们会达到事半功倍的效果,大大缩减开发时间。

所以,不要抱怨慢。

7.专业开发者不使用PHP关于这个误解,坊间有各种各样的说法,比如PHP对初学者是小菜一碟,它是为那些不想认真对待开发的人准备的等等。

当然,不得不承认,PHP在某些方面的确没有什么意义,但是对于这样的误解,真的是可笑之至。

如果这里有许多Web应用程序都是使用PHP开发,那么想象下,一向严谨的开发商却对PHP敬而远之,乃是完全错误的。

php实际开发怎么处理错误

在php开发过程中,由于不知道向谁求助而心慌意乱地判断以为自己不适合学php。其实错误在每个人学习过程中都会碰到的,千万不要妄自菲薄。很多错误在报错的代码提示中已经告诉我们了,仔细看,不会就百度。现总结一些常见的php错误,以共享php新人。

Php常见错误提示

一、Fatal error: Call to undefined function……

函数不存在,可能的原因:

1、系统不存在这个函数且你也没自定义

2、有人会问,我在别的机器上就不报错。那是因为环境不同,这个函数在本机没开,怎么开?你百度函数名字,就能查到这个函数属于哪个dll,去php.ini里开启。

实例讲解:PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法

在一台处理网络支付的服务器迁移的时候,发现不能支付。

PHP环境:

PHP版本为5.3.3

系统为Red Hat 4.1.2-54

查看apache的错误日志,发现是加密文件中一个函数bcmul()报错:

复制代码 代码如下:PHP Fatal error: Call to undefined function bcmul() in /php_rsa.php on line xxx

解决办法:

使用如下命令:

复制代码 代码如下:yum install php-bcmath

就安装好了。

如果出现下面这种情况:

复制代码 代码如下:

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

* base: mirrors.yun-idc.com

* extras: mirrors.yun-idc.com

* rpmforge:

* updates: mirrors.yun-idc.com

Setting up Install Process

Resolving Dependencies

-- Running transaction check

--- Package php-bcmath.x86_64 0:5.1.6-40.el5_9 set to be updated

-- Processing Dependency: php-common = 5.1.6-40.el5_9 for package: php-bcmath

-- Running transaction check

--- Package php-common.x86_64 0:5.1.6-40.el5_9 set to be updated

-- Processing Conflict: php53-common conflicts php-common

-- Finished Dependency Resolution

php53-common-5.3.3-13.el5_9.1.x86_64 from installed has depsolving problems

-- php53-common conflicts with php-common

Error: php53-common conflicts with php-common

You could try using --skip-broken to work around the problem

You could try running: package-cleanup --problems

package-cleanup --dupes

rpm -Va --nofiles --nodigest

就需要使用yum update 之后再yum install php53-bcmath就好了

顺便了解了一下,bcmath这个函数是PHP数学扩展中的一个。可以使用 bcscale() 来设置全局默认的小数位数,具体用法如下:

复制代码 代码如下:string bcmul ( string $left_operand , string $right_operand [, int $scale ] )

例子:

?php echo bcmul('1.34747474747', '35', 3); // 47.161 echo bcmul('2', '4'); // 8 ?

此函数在php.ini中的选项:

复制代码 代码如下:

[bcmath]

; Number of decimal digits for all bcmath functions.

;

bcmath.scale = 0

二、syntax error, unexpected T_STRING, expecting……

严重语法错误,例如syntax error, unexpected T_STRING, expecting ',' or ';' in F:\phpnow\htdocs\index.php on line 4

后边标着行号,自己去检查那一行的标点就行

如果是 第三行 echo 1 后边没加;,报错会报 on line 4 ,on line 4,就是第四行

实例讲解:

其实,这是一个非常容易解决掉的问题。在我看来,似曾相识,呵呵,最近学JavaScript可是学会了使用var声明变量。

其实,在PHP中根本不需要使用var声明的,但是当一个变量作为一个类的成员变量的时候,使用var还是没有问题的。

在外部使用var就报错Parse error: syntax error, unexpected T_VAR in...,例如我的出错信息:

Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34

我在测试:在一个类的内部,使用一个自己定义的类对象作为这个类的成员时,出错了。

Address类对应的address.inc代码:

?php class Address { var $road; function Address(){} function setRoad($road){ $this-road = $road; } } ?

Person类及其测试代码为person.php如下:

?php require("address.inc"); class Person { var $name; var $address; function Person(){ } function display(){ echo "Name : ".$this-name."BR"; echo "Road : ".$this-address-road."BR"; } } var $p = new Person(); $p-address = new Address(); $p-address-setRoad("Chagnchun Road"); $p-name = "Shirdrn"; $p-display(); ?

测试输出现异常:

Parse error: syntax error, unexpected T_VAR in D:\Apache2.2\htdocs\shirdrn\page\p2\pageUtil.inc on line 34

就是因为在person.php代码中使用var声明变量,PHP中是不能这样的,只要使用“$”符号起始就表示这个字符后面的是一个PHP变量。

呵呵:-)

其它网友的补充方法:

问题解决:syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or 前两天开始自己php之旅,做一个很普通的网站,结果我们的php是5.0版本,服务器是4.0版本,纳闷死咯。 昨天忙了一天,今天早上一来,在一篇文章发现了,解决方法。Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' ,如果有“public”,就将“public”去掉。就不会出错,如果“public” 是定义变量的话,将“public” 改为“var”。

三、Parse error: syntax error, unexpected T_VARIABLE in XXX.php on line XXX

这条语句是PHP常见的报错,一般是在XXX行的上一行,或者是XXX行,缺少分号。或者在双引号中使用双引号,且没有转义等等。

解决方法:找到XXX.php的XXX行,按照上面的分析,找到自己的错误,改正即可。

贴士:作为编程人员,要做到代码严谨,思维清晰,并且细心。人非圣贤孰能无过,但尽量避免这些因为粗心出现的错误,这样才能成为合格的程序员。

四、Parse error: syntax error, unexpected 'X' in XXX.php on line XXX

这条语句依然是PHP常见的报错,报错原因是在XXX.php的XXX行,出现了PHP无法识别的字符。常常是因为function,if等需要‘{'、‘}'的地方没有闭合,或者在编程的时候,不小心在‘;'的后面误打了几个字符。

解决方法:找到XXX.php的XXX行,删除多出的字符,添加缺少的字符即可。

五、syntax error, unexpected $end

逻辑忘了闭合 这个报错还有个特征,他会提示你最后一行代码报错,譬如你一共30行,他就告诉你 on line 30,这时候你别检查第三十行,你要把30行挨个,检查一遍,看看哪个标签没闭合。

一共3000行,他就告诉你 on line 3000,这时候你别检查这3000行了,如果你程序排版很乱,在3000行里找哪个括号是个很麻烦的事……我教你一招:ctrl+a ctrl+d alt+f4

好了,你现在可以重写了。

另一种思路:

Parse error: syntax error, unexpected $end in script.php on line xx

调试了一会后发现产生错误的行是文件中间某行

//$str .= "?\n";

想起来了 PHP 解释器允许的结尾标记那行还可以用单行注释,即 //$str .= "?\n"; 被解释成结尾标记前有注释,注释的内容是 //$str .= ",而 ? 后面的 \n"; 会被解释作 PHP 块外的内容按 HTML 输出出去!结果是给 $str .= "?\n"; 这行添加 // 成注释后,反而多了个 ? 的结束标记,造成原来真正的结束标记成了意料之外的(unexpected)了。

解决办法就是直接删掉这一行即可。

PHP 开始和结束标记所在行别写其它东西,是个好习惯。

六、Notice:Undefined varialbe:……

这是一个比较常见的错误,解决方法:error_reporting调整错误级别,

以上就是为大家分享的PHP常见的6个错误提示,给大家提供了大概的解决思路和方向,希望对大家的学习有所帮助。

php报错“Parse error: syntax error”是什么原因?

是字符串拼写的问题,经常还会有在语句最末尾忘记加上“;”而导致的。syntax error, unexpected T_VARIABLE 是PHP开发常见的错误,也是最为低级的错误

PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

php常见错误错误类型: 

未使用二进制上传

代码:Fatal error: This encoded file is corrupted. Please refer to  for further help in/webhome/****.com/web/www/index.php on line 0

数据表中缺少字段 代码:    An error was encountered  Boka SiteEngine

数据库错误 错误信息1054: Unknown column 'tuijian' in 'where clause' 出现错误的查询信息是SELECT * FROM boka_product WHERE tuijian=1 AND classid IN ('1','0')ORDER BY id DESC LIMIT 4

服务器限制了网站使用内存的大小为8M,现在已经超过 代码:    Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 5898240 bytes)

这个是模板错误,header.php的529行所指出的模板,该模板的79行出错 [code]in /webhome/***.com/web/www/header.php(529) : eval()'d code on line 79

数据库表不存在 代码:    An error was encountered  Boka SiteEngine1146: Table 'test.boka_settings' doesn't exist SELECT value FROM boka_settings WHERE variable='defaultstyleid'

未安装或者数据库的用户名密码错误代码:    An error was encountered  Boka SiteEngine 1045: Access denied for user: 'root@localhost' (Using password: YES)  

开发的php扩展出现段错误怎么处理

Linux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误)此时如果系统core dump功能是打开的,那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈情况。这对于我们发现程序bug很有帮助。

使用ulimit -a可以查看系统core文件的大小限制;使用ulimit -c [kbytes]可以设置系统允许生成的core文件大小。

ulimit -c 0 不产生core文件

ulimit -c 100 设置core文件最大为100k

ulimit -c unlimited 不限制core文件大小

步骤:

1、当发生段错误时,我们查看ulimit -a (core file size (blocks, -c) 0)并没有文件,

2、设置 :ulimit -c unlimited 不限制core文件大小

3、运行程序 ,发生段错误时会自动记录在core中 (php -f WorkWithArray.php)

4、ls -al core.* 在那个文件下(-rw------- 1 leconte leconte 139264 01-06 22:3 1 core.2065)

5、使用gdb 运行程序和段错误记录的文件。(gdb ./test core.2065)

6、会提哪行有错。

很多系统默认的core文件大小都是0,我们可以通过在shell的启动脚本/etc/bashrc或者~/.bashrc等地方来加入 ulimit -c 命令来指定core文件大小,从而确保core文件能够生成。

除此之外,还可以在/proc/sys/kernel/core_pattern里设置core文件的文件名模板,详情请看core的官方man手册。