本文目录一览:
- 1、php程序员写的代码为什么总有bug
- 2、一个优秀的php程序员应该具备哪些技能
- 3、php实际开发怎么处理错误
- 4、一个php项目,报出了异常,请您解答。
- 5、php源码bug怎么修复
- 6、PHP做得网站卡了怎么办
php程序员写的代码为什么总有bug
弱类型以及即编即译等等灵活的特性,注定PHP必须要有牺牲一定的稳定性的前提来达到。换句话说,通常JAVA中一些BUG可以通过编译机制可以尽早的扼杀早摇篮之中,即使是运行期的错误,也可以通过编译机制找到。同时,强类型语言的严谨的代码编写风格,也不容易出现由弱类型语言中那些让人又爱又恨的类型自动转换发生的意想不到的行为。
最终,我可以认为PHP为了快速开发,做出了他应有的牺牲。把更多的代码控制权力交给程序员,而不是交给机器,这也意味着代码的有效性考验着作为程序员本身的编程能力。更可能是程序员本身对编程思想的理解程度。不过,PHP大多数都是用来开发web站点,而且还有很庞大的社区,以及许多优秀的框架,这些都可以帮助PHP程序员在开发中减少不必要的麻烦。
BUG不可避免,BUG与否决定在你!
个人经验,少年,你如果要开发应用的话,这个年代不用框架,就等于自己为自己增加N倍的难度。在下推荐几款框架给你吧:
LARAVAL (强力推荐),YII,codeigniter.......
一个优秀的php程序员应该具备哪些技能
1、文件目录处理函数包80%以上的函数的功能的灵活运用。
2、日期时间函数中的80%以上的函数的功能的灵活运用
3、数学函数库中的100%的内容。
4、网络库中的60%以上的内容,对各个函数的功能比较熟悉。
5、字符串处理函数下的60%以上的内容,特别是各种处理函数。
6、正则表达式函数下的90%以上的内容,特别是各种正则处理
7、一些安全库下的40%以上的内容,如果对于安全没有接触的话根本就不可能掌握PHP
8、XML处理,熟悉SAX、DOM以及JDOM的优缺点并且能够使用其中的一种完成XML的解析及内容处理。
9、图形图像函数库下的80%以上的内容,特别是一些图像生成和处理
10、MySQL 数据库函数下的90%以上的内容,特别是处理各种数据的函数
11、数组处理函数下的90%以上的内容,特别是各种操作处理函数
12、其它PEAR,PECL,和一些扩展类库中的80%以上的内容,特别是一些常用的类的处理
13、针对不同的需求,查找不同的函数库。
14、测试:必须熟悉使用phpunit编写测试用例完成代码的自动测试。
15、管理:必须熟悉使用xinc, phing等完成工程管理的常用任务,例如工程编译、生成phpdoc、生成、版本控制、自动测试。
16、排错:应该可以根据异常信息比较快速的定位问题的原因和大致位置。
17、思想:必须掌握OOP的主要要求,这样使用PHP开发的系统才能是真正的PHP系统。
18、规范:编写的代码必须符合流行的编码规范,这样程序的可读性才比较好。
19、博学:掌握OOA、OOD、YiiFramework 、Zendframework、cakephp、symfony、模板技术等流行技术,掌握软件架构设计思想、搜索引擎优化、缓存系统设计、网站负载均衡、系统性能调优等实用技术。
20、多去看别人写的代码,php优秀的框架很多,很多人在认知上就有一个错误。认为自己能用一个框架开发一个系统了就认为自己已经熟悉这个框架了,其实会使用他并没有什么一个框架基本都有用户手册,一看基本都会使用了,要想自己技术上面提升,建议多看看这些框架的实现原理(设计模式)。
希望通过对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项目,报出了异常,请您解答。
根据信息来看:这是smarty模板写的不对,可能清况是你配置了smarty的开闭标签为‘{’,'}',然后在html中(这里是你的javascript代码中)出现了这些开闭标签,然后smarty在编译的时候就会以为遇到smarty语法,然后进行编译,显然,你这里是javascript逻辑,而不是smarty逻辑,smarty编译就是发生错误。
解决方法有两种,任选一种应该可以:
1 重新定义个smarty开闭标签,保证不与常用标签冲突
2 用smarty中的{literal}标签,来包裹javascript代码,示例可参考
{literal}
script language=javascript
!--
function isblank(field) {
if (field.value == '')
{ return false; }
else
{
document.loginform.submit();
return true;
}
}
// --
/script
{/literal}
Literal 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示.
php源码bug怎么修复
你好,你要看下是报什么错误
1、是框架问题,可以看下框架的文档
2、如果是原生php问题,直接找PHP文档
希望对你有帮助!
PHP做得网站卡了怎么办
网站卡说明网站有性能瓶颈,性能瓶颈是多方面的。对于PHP来说主要有以下几点
后台代码有bug或者存在性能缺陷,这是最常见的。也是最容易处理的。简单点就是通过代码分析,找出耗时长或者卡顿的代码加以优化。
循环太多:循环太多就考虑如何去掉循环,或者优化循环体结构,包括每次提前计算好变量,不在循环体内做过多运算。
IO瓶颈:就是sql语句有缺陷,或者磁盘读写过慢,网络带宽过低。sql优化包括索引优化,分表分库,启用redis,memcache等等优先顺序从前到后,网上都有很多教程。磁盘读写慢,就要考虑上固态硬盘。带宽就要联系网络运营商解决
精简前端页面。现在页面功能越来越复杂,卡顿不一定是后台,前端出现问题也很多。包括页面内容太多(适当缩减一部分网页内容),js,css,图片太大(对js,css进行压缩,去掉冗余代码等。使用压缩格式的图片,如jpg格式控制图片大小(尽量在100K甚至10K以内)启用网页缓存等)
深度优化性能,包括采用更快的PHP(PHP7.2),更快的服务器(Linux+nginx),更快的mysql(读写分离)等等。