==============================================
不要直接使用__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在文档中的描述。
==============================================
也许还在更新...
http://hi.baidu.com/thinkinginlamp/blog/item/f9655982c7d560a60cf4d2dc.html
不要直接使用__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在文档中的描述。
==============================================
也许还在更新...
http://hi.baidu.com/thinkinginlamp/blog/item/f9655982c7d560a60cf4d2dc.html