1.require和require_once用于包含库文件时更加安全。
include和include_once则适用于模板这样的操作。
require和require_once 都是语句而不是函数。这意味着使用它们时可以省略括号。
2.使用PEAR规则可以这样做:
function __autoload($classname){
$path=str_replace(‘_’,DIRECTORY_SEPARATOR,$classname);
require_once(“$path.php”);
}
$y=new business_ShopProduct();
3.get_class_methods();得到一个类所有方法列表,需要类名作为参数,返回类中所有方法名的数组。
if(in_array($method,get_class_methods($product))){
print $product->$method;
}
4.is_callback();//接受字符串形式的方法名作为第一个参数,如果方法名存在且可被调用,返回true.如果要检测类中方法可否被 调用,可以给函数传递一个数组,数组必须包含对象或者类名,以将其作为他的第一个元素,要检查的方法名作为第二个参数,如果方法在类中存在,函数会返回 true.
if(is_callback(array($product,$method))){
print $product->$method;
}
5.method_exists();//该函数的参数为一个对象或者一个类名和一个方法名,并且如果给定方法在对象类中存在,则返回true.
php5,一个方法存在并不意味着可以被调用,对于private/producted/public方法,method_exists都会返回true.
6.get_class_vars();//接受类名作为参数,返回关联数组。返回数组中,属性名作为键名,属性值作为键值。
7.get_parent_class();//找到一个类的父类,需要一个对象名或者类名作为参数。如果存在返回父类名字,如果不存在返回false.
8.call_user_func();//可以调用方法或函数
$returnVal=call_user_func(‘myfunction’);
如果要调用一个类方法,则需要一个数组,数组的第一个元素是一个对象,第二个元素是要调用的方法名。
$returnVal=call_user_func(array($myObj,”method”));
call_user_func(array($myObj,”method”),20);//20作为参数传递过去
9.反射API
ReflextionClass提供给定类所有信息的方法。包括php自带的内置类。接受类名作为他的唯一参数。
$prod_class=new ReflectionClass(‘CdProduct’);
Reflection::export($prod_class);