初进一个项目组的时候,可能对他的框架啊神马不熟悉的。有时候类里又有各种魔术方法的使用,IDE还跳转不过去对象的方法。
这时候很多php内置函数就可以帮上些忙了。

1. instanceof
2. get_class_methods
3. call_user_func_array

4. 更推荐使用php的反射ReflectionClass

比如想知道这个对象是不是这个类的实例,可以使用instanceof $instance instanceof $class;

当想知道这个实例都可以调用的哪些方法的时候,可以使用get_class_methods($instance) 传入这个实例参数,返回这个实例的类(包括父类)的所有方法,以数组返回。

// call_user_func_array(array($foo, "bar"), array("three", "four")) $foo->bar() 这个就直接拷贝了操作手册里的
<?php
function foobar($arg, $arg2) {
echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
function bar($arg, $arg2) {
echo __METHOD__, " got $arg and $arg2\n";
}
}

// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two")); // foobar got one and two

// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four")); // foo::bar got three and four
?>

====================================================================

php反射  操作手册:函数参考-->变量与类型相关扩展-->反射(反射还有很多相关函数)

class Hi{}

$obj = new Hi();
$reflect = new ReflectionClass($obj);// 创建一个ReflectionClass对象,参数是类名或者类的实例
$methods = $reflect->getMethods();// 通过ReflectionClass对象获取要查询的对象信息,如方法
$props = $reflect->getStaticProperties();// 如属性、静态属性等
print_r($methods);
print_r($props);

====================================================================

线上项目,通常会抑制错误。

而开发时,一般希望看到错误。

这两行代码,有用武之地了

// error_reporting(E_ALL);
ini_set('display_errors','On');

php初进一个项目组,使用几个函数帮忙熟悉流程的更多相关文章

  1. C++ Profiler工具之初体验

    http://www.cnblogs.com/likwo/archive/2012/12/20/2826988.html 转 http://www.cnblogs.com/lenolix/archiv ...

  2. BI的相关问题[转]

    什么是BI? Business Intelligence(BI) = Data Warehouse(DW) + OLAP + Data Mining(DM) 商业智能=数据仓库+联机分析+数据挖掘 做 ...

  3. 流程与IT管理是未来IT行业发展的必经之路

    流程与IT管理是未来IT行业发展的必经之路 PM圈子 百家号17-11-2411:30 本文由“光环国际”—中国项目管理PMP培训上市企业转载 IT部门的职责之所以能够从辅助部门发展成业务支撑部门,最 ...

  4. STC项目风险分析

    一.引言 由于项目的实现具有不确定性,所以每个项目都是存在风险的. 项目实现过程中的复杂性以及项目内外许多变化的因素,都会造成项目实现过程中的风险. 如果不能对项目的风险进行很好的分析和管理,那么项目 ...

  5. 嵌入式单片机STM32应用技术(课本)

    目录SAIU R20 1 6 第1页第1 章. 初识STM32..................................................................... ...

  6. 【转帖】流程与IT管理部——IT支撑业务变革的必然趋势

    流程与IT管理部——IT支撑业务变革的必然趋势 1前言 伴随着中国企业的信息化进程, IT部门.IT专职人员已经在大部分企业获得了一席之地,电脑.网络.软件的维护都离不开这个部门:不过“一席之地”并不 ...

  7. IT项目经理岗位职责(转)

    一.  项目经理岗位职责 1.  项目经理为整个项目的第一责任人. 2.  项目经理对<质量检查报告>中的所有细则负首要责任. 3.  项目经理必须有效掌控项目开发的各个环节,协助.指导项 ...

  8. TFS 2015(Visual Studio Team Foundation Server)的下载和安装

    微软现在所有Visual Studio相关的下载到www.visualstudio.com网站下载是非常方便的 下载地址: 下载ISO版本后,进行安装,由于10-20人的小团队,不需要SharePoi ...

  9. [转]keil使用详解

    第一节 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上.结构性.可读性.可维护性上有明显的优势,因而易学易用.用过 ...

随机推荐

  1. Clumsy 弱网络环境模拟工具使用介绍

    Clumsy 弱网络环境模拟工具使用介绍 by:授客 QQ:1033553122 简介 利用封装 Winodws Filtering Platform 的WinDivert 库, clumsy 能实时 ...

  2. Linux服务器redhat配置本地yum源

    前面给大家介绍了很多在Linux安装软件的知识,这些软件往往依赖了很多第三方的工具或者软件,如果在Linux服务器有外网的情况,咱们可以通过yum install这样的命令直接去安装这些相关的工具或者 ...

  3. idea总是编译启动报错

    使用多环境配置时候,总是会出现莫名其妙的启动报错.主要是没有多环境配置的参数,挺奇怪的,因为这个问题时现时不现.又没有什么具体规律,一直找不到原因.今天一个偶然的机会,发现会不会是这个原因?

  4. LeetCode题解之Linked List Cycle

    1.题目描述 2.问题分析 使用快慢指针方法,一个快指针,一个慢指针,如果到某个时候,快指针追上了慢指针,则说明有环存在. 3.代码 bool hasCycle(ListNode *head) { i ...

  5. leveldb源码分析--BloomFilter

    bloomfilter是leveldb中的一大性能利器,所以为了文章的表现完整性这里新启这么一篇文章.leveldb中的bloomfilter的实现在bloom.cc中,是一个较为简单的实现,所以就不 ...

  6. Oracle EBS AR 收款调整取值

    SELECT ct.trx_number ,adj.adjustment_number ,ad.amount_dr ,ad.amount_cr ,ad.source_table ,ad.source_ ...

  7. 【Redis数据库】命令学习笔记——发布订阅、事务、脚本、连接等命令汇总

    本篇基于redis 4.0.11版本,学习发布订阅.事务.脚本.连接的相关命令. Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. 序号 ...

  8. SQL Server 查询表的字段对应描述、数据类型、长度

    create procedure proc_view_cloumns ( ) ) AS select b.name,a.value,c.name, b.max_length from sys.exte ...

  9. yum/dnf/rpm 等 查看rpm 包安装路径 (fedora 中 pygtk 包内容安装到哪里了)

    有时候我们 使用 包管理工具,安装很方便,但我们还要能知道它们安装了什么文件,都把这些文件安装到哪里了? 我们以探究 pygtk 为例 在 fedora 28 之中 查找 pygtk: ➜ ~ rpm ...

  10. linux stat 简单介绍

    stat 命令查看文件或文件系统的状态时间等属性 用法:stat [参数]... 文件... 简单的介绍一下stat命令显示出来的文件其他信息: - File:显示文件名 - Size:显示文件大小 ...