实现php工厂模式的几个关键函数
面向对象编程的方法中,为了实现对象间的松耦合,其中一种简单的原则就是将应用策略与功能实现分离。常常用到的设计模式有factory、facade等,而当中的核心编程技术就是callback技术。
所谓callback技术,简单的说就是将函数的作为一个参数传递给另外一个函数,并被该函数所调用。
php下,实现工厂模式的有一下。几个关键函数
mixed call_user_method_array ( string $method_name , object &$obj , array $paramarr )从用户定义的 obj 对象中调用 method_name 所指的方法,同时使用 paramarr 中的参数。
mixed call_user_method ( string method_name, object &obj [, mixed parameter [, mixed ...]] )类似call_user_method_array,
mixed call_user_func_array ( string $callback_function, array param_arr )从调用callback_function,并使用param_arr中的参数
mixed call_user_func ( callback function [, mixed parameter [, mixed ...]] )第一个参数指定了调用的函数名,后面是不限个数,不限格式的参数队列。
call_user_func_array 与call_user_func是两者不同的书写习惯。
其中通过改变call_user_func的参数,基本上可以应付各种需求了。
// Type 1: Simple callback
call_user_func(‘my_callback_function’);// Type 2: Static class method call
call_user_func(array(‘MyClass’, ‘myCallbackMethod’));
// Type 3: Object method call
$obj = new MyClass();
call_user_func(array($obj, ‘myCallbackMethod’));
还有一些辅助的函数
class_exists — 檢查類別是否已經定義
get_class_methods — 傳回類別中方法的名稱
get_class_vars — 傳回類別預設的屬性
get_class — 傳回物件的類別名稱
get_declared_classes — 傳回聲明的類別的名稱
&nbs
相关文档:
GD库是PHP进行图象操作一个很强大的库。
先在php.ini里增加一行引用:extension=php_gd2.dll
重启apache。做一个测试页 var_dump(gd_info());输出数据表明GD库引用成功。
表单auth.html
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
< ......
今天碰到个奇怪的问题,一个ajax页面在本地测试服务器运行一切正常,传到公网服务器上就死活说 javascript错误。
打开代码一看,是javascript的那一行使用了一个json的reponseText,DEBUG一下,原来回传是空的。
看看后台PHP,貌似没什么问题(本来以为是URL问题)然后上网搜一下,原来是PHP的json_encode函数在5.2下才有 ......
最近一年来一直在使用fedora,发现linux真是太适合我了,喜欢写程序,自己瞎倒腾,唉windows误我大好年华……
用PHP写了一段程序用于提取网页中的数据,相信搜索引擎也是差不多的想法,只不过他们数据多,算法好些,呵呵
[php]
<?php
/*
*此文件的目标是自动搜集存储8684上的深圳市公交数据
*
*由 ......
1.如果一个方法能被静态,那就声明他为静态的,速度可提高1/4;
2.echo的效率高于print,因为echo没有返回值,print返回一个整型;
3.在循环之前设置循环的最大次数,而非在在循环中;
4.销毁变量去释放内存,特别是大的数组;
5.避免使用像__get, __set, __autoload等魔术方法;
6.requiere_once()比较 ......
一、缓存技术:
有些信息比方经常不变的,但是还是能变的信息放在缓存中以加快显示速度,这是很有价值的,所谓的缓存,通俗的理解就是一些保存在服务器端的共用信息.它是于服务器同生死的,我们在保存缓存的时候可以指定下次更新的时间的判断,比方要在5分钟更新一次,可以记录上次更新的时间,和当前时间比较, ......