关于require和require_once的研究
06-16
PHP错误处理与反馈机制,是使用set_error_handler(”myErrorHandler”); 使程序出错时调用此函数。
此函数有4个参数,myErrorHandler($errno, $errstr, $errfile, $errline),$error-错误号,$errstr-错误描述,$errfile-错误文件,$errline-出错的行号。
用此方法,可以捕捉并记录详细的错误信息,可以根据项目需求进行错误级别评定。
WordPress的报错声明
// Add define(’WP_DEBUG’,true); to wp-config.php to enable display of notices during development.
if (defined(’WP_DEBUG’) and WP_DEBUG == true) {
error_reporting(E_ALL);
} else {
error_reporting(E_ALL ^ E_NOTICE ^ E_USER_NOTICE);
}
插件的报错
error_reporting( E_ALL ^ E_NOTICE );
升级程序的报错
error_reporting( E_ALL ^ E_NOTICE );
项目即将收尾,但有些代码乱七八糟,不少东西是为了赶时间而写成了流水程序。功能出来了,但代码可读性和可维护性却相当差。当然拿出少量时间给代码排个版是很有必要的,这里我一直主张工厂模式三层结构的方法。
网站基本是传统的机构,数据库,web,在这里,我们只讨论web中程序的结构。
子类:子类是所有跟程序之外对象进行交互的类,包括跟数据库,磁盘存储,xml等的处理。子类有个特征,就是可以迁移到任意的项目中进行复用,也就是整个项目中最底层的一些操作。
工厂方法:工厂方法就是使用子类提供的功能进行整合,构造出能够满足一些业务具体功能的方法。
业务处理:业务处理主要是UI部分,根据用户的请求来选择合适的工厂方法,把工厂方法的返回产品数据输出给用户。
在php的开发过程中,我们的error_reporting()开到最严格,2047,因此,好多php本身可避免的报错也都会出来,就跟C一样让在在强类型状态下工作。
为了尽量使程序兼容,我们对每个变量的有效性进行严格判断。
我一般使用 isset($a) ? $a : ”;这种方式对变量进行判断,如果变量不存在的话初始化变量。
当然在其他的地方也可以使用该方法检验变量有效性。
底下是大部分进行验证的函数。
检测变量状态: isset() empty()
检测变量类型 is_array() is_double() is_float() is_real() is_long() is_int() is_integer() is_string() is_object()
具体使用可以查下手册
PHP并不比C或者其他语言差,关键在于你编程的态度.
不管做什么,总应该专注。专注一门,在一个团体内可以独当一面,体现价值。
除非做到很专,或者到一定层次,那作为一个普通的web工程师,还是应该了解很多知识的。
做程序员时间不长,说下自己的看法:
程序,代码,html,css这些就不说了,不能精通,起码能看懂,会抄,简单问题能解决,这应该是基本的。
数据库,基本所有的web系统不能脱离数据库,起码的使用必须得会,一些基本语法,几个标准。再深则设计,优化,备份等,也都是必备的一些知识。
SEO,做网站的没有不想做好的,尤其是google baidu搜索引擎流行的今天。
服务器:自己配置开发环境是基础,但也要有能力去做一台服务器,也许不是太优化,不是太商业化,会点,也是有必要的。
英语:论技术,老外还是牛。想学他们,必须得会英语,我天天用星际译王。
沟通:东西毕竟是让外行用的,得作出适合他们的东西。
其实这些也正式我现在努力学习的。
在linux(centos5)上编译安装 php-5.2.6.tar.gz ,configure参数一定要带上 –enable-cli
完成后,php所在目录 /usr/local/bin/php
运营 ./php -v 显示php版本信息,证明安装成功
编写我的第一个php shell脚本
#!/usr/local/bin/php -q
echo “Hello World!”;
?>
保存为 test.sh
运行,屏幕会 回显 Hello World!
在命令行下,不会存在get post之类的动作,除非参数写到页面内,而php恰巧提供了这样的命令行参数接口,$argv
修改test.sh
#!/usr/local/bin/php -q
print_r($argv);
?>
加参数运行 ./test.sh t1 t2 ,回显为
Array
(
[0] => ./test.sh
[1] => t1
[2] => t2
)
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
|---|---|---|---|---|---|---|
| « 三 | ||||||
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 | |||