查看文章 |
小贴士(不断添加中)
2008年03月04日 星期二 下午 08:31
作者:老王 ============================================== 不要直接使用__autoload(),而应该使用spl_autoload_register(),这样可以避免出现命名冲突。 ============================================== 尽量使用$_SERVER[‘REQUEST_TIME’](此变量在PHP5.1以上有效),而不是time(),因为time()不仅是一个函数,还涉及一次系统调用。 ============================================== Rowset和Resultset是两个很容易混淆的概念,它们的区别在于得到Rowset后,就得到了所有的数据行,不再需要数据库连接(ZF本身有一个Rowset实现,可以参阅),而得到Resultset后,仅得到了当前数据行,必须保持数据库连接。这样来说,Rowset内存占用要比Resultset大。 ============================================== 在常见的MVC框架中,对Controller的组织方式大约有两种:一种是一个Controller里的所有Action都放在一个文件里(如Rails),一种是一个Action一个文件(如Struts),哪种方式更合理一些呢?前者提取公共方法更简单些,后者分离更清晰些。 ============================================== Google的API太强悍了,连绘图都有了:http://code.google.com/apis/chart/,有了这个东西,以后写PHP代码的时候就可以先判断服务器是否装了GD,装了就自己画图,没装就用GoogleAPI来画图,爽歪歪。 ============================================== 对数组而言,array_merge和+操作的差别在于array_merge会覆盖同名的键值,而+不会。 ============================================== 如果我们使用NuSOAP做一个服务端方法,比如名叫Proxy.readServices,这就表示我们有一个名为Proxy的类,通过实例化Proxy来调用其中的readServices方法。当我们使用PHP5内建的SOAP扩展去调用这个方法的时候,要注意不能使用下面的形式: $client = new SoapClient('some.wsdl'); $result = $client->SomeFunction('param'); 这是因为NuSOAP要求的对象方法名比较变态,如果直接用就成了: $client = new SoapClient('some.wsdl'); $result = $client->Proxy.readServices('param'); 这样的代码明显是一种语法错误,取而代之的,应该使用__soapCall方法: $client = new SoapClient('some.wsdl'); $client->__soapCall('Proxy.readServices', array('param')); ============================================== mysql_query和pg_query,这两个方法的行为方式一致么?答案是否定的,虽然他们都是简单的返回数据库的查询资源,但是mysql_query的处理方式很独特,它会把查询的结果集完整的缓存到PHP端,而pg_query则不是。具体请查阅mysql_query和mysql_unbuffered_query在文档中的描述。 ============================================== |
最近读者: