包是一组相关类的集合,这些类以某种方式组合在一起。包可以把系统的一部份和其他部分分隔开来。通过将不同功能的代码分成不同的包。我们可以很方便地组织和管理程序的源代码。 一般把相关的类放在同一个目录下。我们可以把这个目录下的相关类理解为一个包。
===============================================
命名空间:命名空间(英语:Namespace)表示标识符(identifier)的上下文(context)。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。
例如,设Bill是X公司的员工,工号为123,而John是Y公司的员工,工号也是123。由于两人在不同的公司工作,可以使用相同的工号来标识而不会造成混乱,这里每个公司就表示一个独立的命名空间。如果两人在同一家公司工作,其工号就不能相同了,否则在支付工资时便会发生混乱。
这一特点是使用命名空间的主要理由。在大型的计算机程序或文档中,往往会出现数百或数千个标识符。命名空间(或类似的方法,见“命名空间的模拟”一节)提供一隐藏区域标识符的机制。通过将逻辑上相关的标识符组织成相应的命名空间,可使整个系统更加模块化。
可以在不同的命名空间,定义相同名称的类,目的还是为了更好地管理和组织类或者说代码,让处在不同命名空间的同名的类互不干扰
========================================================================================
文件引入的一个问题,
我们可以在 php.ini 里设置 include_path 指向某个目录。然后我们可以把要在程序里引入的文件,全部放在这个目录下。这样子我们在引入文件时,可以使用类似相对路径的方式引入文件。默认会来这里查找。
比如 , php.ini中,将
include_path=".:/web/includes"
然后,我们可以把 要引入的类放在这里 比如 /web/includes/db.class.php 。引入时只需要在文件时加上类似 require('db.class.php'); 这样的语句即可
也就是说:当你把类库目录放到包含目录以后,只需要在require()语句中指定包和文件即可
==========================================================================================
类函数和对象函数:
1、字符方式引入对象,或类 .
class Person{
}
$classname='Person';
$hwp=new $classname;
2、 class_exists('类名') : 查找指定的类,存在返回 true ,否则返回 false
3、get_declared_classes() : 以数组的形式返回脚本进程中定义的所有类,包括PHP内置的类
4、get_class() : 返回某个对象的来源类名称
5、instanceof : 用来检测一个指定的对象是否属于(继承于)某个类,或者该类的子类或者某个接口,如果是则返回 true ,否则返回 false
6、get_class_methods('类名|对象名' ) : 以数组的形式返回某个类的所有公开的方法 如:
print_r(get_class_methods('Memcache'));
注意, 传数可以是类名或者是对象名。只有声明为 public 的方法,才会被获取到
7、is_callable() : 验证某个函数是否存在,或者验证某个对象是个有某个方法且可调用
if(is_callable( 'date' ) ) echo 'date这个函数存在,且可被调用';
if(is_callable( array(对象,方法 ) ){echo '某个对象存在某个方法'}
8、获取类属性
get_class_vars('类名') : 以数组的形式返回对象的属性,属性名作key , 属性值作为 value
注意: get_class_vars() :只会返回 public 限定的属性
9、查找父类
get_parent_class('类名');
class Memcache2 extends Memcache{}
echo get_parent_class('Memcache2') ; //得到 Memcache
10、确定某个类或者实例是否派生自某个父类
is_subclass_of(实例或类,父类名称); 返回值为 true 或 false
11、以字符的形式调用函数
call_user_func() :
call_user_func('phpinfo') : 调用函数
call_user_func('show',55); 调用show函数,并传参数55 ,可以传递多个参数的
如下所示:
function show($num1,$num2){
echo $num1+$num2;
}
call_user_func('show',11,22); //最终结果: 33
call_user_func( array($对象名,方法名) ); : 调用某个实例的指定方法
call_user_func( array($对象名,方法名),参数 ); : 在调用实例方法时,传递参数,个数不限
=============================================================================================
对象工具
原创
©著作权归作者所有:来自51CTO博客作者贪嗔痴慢疑的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
承前启后,Java对象内存布局和对象头JVM Java