弱类型以及即编即译等等灵活的特性,注定PHP必须要有牺牲一定的稳定性的前提来达到.换句话说,通常JAVA中一些BUG可以通过编译机制可以尽早的扼杀早摇篮之中,即使是运行期的错误,也可以通过编译机制找到.同时,强类型语言的严谨的代码编写风格,也不容易出现由弱类型语言中那些让人又爱又恨的类型自动转换发生的意想不到的行为.
最终,我可以认为PHP为了快速开发,做出了他应有的牺牲.把更多的代码控制权力交给程序员,而不是交给机器,这也意味着代码的有效性考验着作为程序员本身的编程能力.更可能是程序员本身对编程思想的理解程度.不过,PHP大多数都是用来开发web站点,而且还有很庞大的社区,以及许多优秀的框架,这些都可以帮助PHP程序员在开发中减少不必要的麻烦.
BUG不可避免,BUG与否决定在你!
个人经验,少年,你如果要开发应用的话,这个年代不用框架,就等于自己为自己增加N倍的难度.在下推荐几款框架给你吧:
LARAVAL (强力推荐),YII,codeigniter.......
希望通过对PHP程序员必备技能的整理,能够帮助到你,更好的探索php程序世界.
在php开发过程中,由于不知道向谁求助而心慌意乱地判断以为自己不适合学php.其实错误在每个人学习过程中都会碰到的,千万不要妄自菲薄.很多错误在报错的代码提示中已经告诉我们了,仔细看,不会就百度.现总结一些常见的php错误,以共享php新人.
Php常见错误提示
第一段:Fatal error: Call to undefined function......
函数不存在,可能的原因:
①.、系统不存在这个函数且你也没自定义
实例讲解:PHP FATAL ERROR: CALL TO UNDEFINED FUNCTION BCMUL()解决办法
在一台处理网络支付的服务器迁移的时候,发现不能支付.
PHP环境:
查看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
-- Finished Dependency Resolution
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
顺便了解了一下,bcmath这个函数是PHP数学扩展中的一个.可以使用 bcscale() 来设置全局默认的小数位数,具体用法如下:
复制代码 代码如下:string bcmul ( string $left_operand , string $right_operand [, int $scale ] )
例子:
此函数在php.ini中的选项:
[bcmath]
; Number of decimal digits for all bcmath functions.
;
bcmath.scale = 0
第二段:syntax error, unexpected T_STRING, expecting......
后边标着行号,自己去检查那一行的标点就行
实例讲解:
其实,这是一个非常容易解决掉的问题.在我看来,似曾相识,呵呵,最近学JavaScript可是学会了使用var声明变量.
其实,在PHP中根本不需要使用var声明的,但是当一个变量作为一个类的成员变量的时候,使用var还是没有问题的.
在外部使用var就报错Parse error: syntax error, unexpected T_VAR in...,例如我的出错信息:
我在测试:在一个类的内部,使用一个自己定义的类对象作为这个类的成员时,出错了.
Address类对应的address.inc代码:
php class Address { var $road; function Address(){} function setRoad($road){ $this-road = $road; } } ?
Person类及其测试代码为person.php如下:
测试输出现异常:
就是因为在person.php代码中使用var声明变量,PHP中是不能这样的,只要使用"$"符号起始就表示这个字符后面的是一个PHP变量.
呵呵:-)
其它网友的补充方法:
第三段: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
好了,你现在可以重写了.
另一种思路:
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项目bug相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!