欢迎来到phpdaily

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);

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2014-07-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏梧雨北辰的开发录

Swift学习:构造器(中)

本篇继续对Swift中的构造器进行介绍,这里主要说到类的继承和构造。 作为引用类型的类具有的继承特性,这使得类的构造过程较为复杂一些,因为涉及到很多细节性的问题...

2998
来自专栏desperate633

深入理解javascript中的继承机制(1)原型链继承机制将共有的属性放进原型中

javascript中的继承机制是建立在原型的基础上的,所以必须先对原型有深刻的理解,笔者在之前已经写过关于js原型的文章。

672
来自专栏微信公众号:Java团长

浅谈Java中的equals和==

  为什么第4行和第5行的输出结果不一样?==和equals方法之间的区别是什么?如果在初学Java的时候这个问题不弄清楚,就会导致自己在以后编写代码时出现一些...

791
来自专栏黑泽君的专栏

当类中的方法全部都是 static 关键字修饰时 ,它的构造方法最好作为 private 私有化,理由是方法全是 static, 不知道的人会去new对象去调用,需要调用构造方法。 但 static的

当类中的方法全部都是 static 关键字修饰时 ,它的构造方法最好作为 private 私有化,理由是方法全是 static, 不知道的人会去new对象去调用...

422
来自专栏后端技术探索

当一只程序员遇到了一道无聊的智力填数题!

本猿在朋友圈和群里多次看到这样一道智力题(见下图),一看就是一道需要乱扯的无聊的题目。好吧,试试就试试。

701
来自专栏小樱的经验随笔

【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别

Java中的"equals"和"=="的用法及区别 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hel...

2917
来自专栏编程理解

排序算法(二):选择排序

选择排序算法维护一个待排序集合和一个已排序集合,每轮迭代,从待排序集合中选择一个最小(最大)元素,添加到已排序集合中,通过多次迭代,最终完成排序。

771
来自专栏一“技”之长

Swift讲解专题十二——方法 原

        方法只是一个术语,其实就是将函数与特定的类型结合,类、结构体、枚举都可以定义方法,方法又分为实例方法和类型方法,类型方法类似于Objective...

752
来自专栏杨熹的专栏

Day 1-Java-imooc-6.方法

课程地址:http://www.imooc.com/learn/85 总结图片来自 http://www.imooc.com/article/10535 ? -...

33311
来自专栏ShaoYL

结构体

35013

扫码关注云+社区