<?php /** */ //get_object_vars($obj) 获得对象的属性,以关联数据形式返回. /*class study{ public $name; public $age; public $city; function __construct($name,$age,$city) { $this->name=$name; $this->age=$age; $this->city=$city; } public function say(){ echo "…
get_object_vars():获得对象的属性,以关联数组形式返回 get_parent_class():获得对象的父类 is_subclass_of():判断对象是否某类(参数2)的子类实例出的,返回int类型(祖孙级)  interface_exists():判断接口是否存在 get_class():获得实例化对象的类名,在类内部调用时,不需要传入对象名.区分大小写 get_declared_classes():以数组形式返回当前脚本定义的类 get_declared_interface…
1. interface_exists.class_exists.method_exists和property_exists: 顾名思义,从以上几个函数的命名便可以猜出几分他们的功能.我想这也是我随着对PHP的深入学习而越来越喜欢这门编程语言的原因了吧.下面先给出他们的原型声明和简短说明,更多的还是直接看例子代码吧.bool interface_exists (string $interface_name [, bool $autoload = true ]) 判断接口是否存在,第二个参数表示在…
1.类的自动加载: spl_autoload_register()函数可以注册任意数量的自动加载器,当使用尚未被定义的类(class)和接口(interface)时自动去加载,这样可以避免include一大堆文件. 比如你有一个(甚至很多个)需要引用的类文件Example.php,它是这样子的 <?php class Example{ public function __construct() { echo "I am zhylioooo"; } } 你还有一个父文件,或者父类,…
与类有关的魔术常量: __CLASS__,:获取其所在的类的类名. __METHOD__:获取其所在的方法的方法名. class A{ function f1(){ echo __CLASS__: //输出“A” echo __METHOD__: //输出“f1” //注意:get_class()也可以得到类名,但其必须有个“对象” } } 数据(变量)序列化/反序列化 什么叫序列化: 就是将一个变量的数据“转换为”字符串——但并不是类型转换. 其目的(意图)是将该字符串“存储起来”(比如存为文…
class_exists:类是否存在 在创建对象之前判断类是否存在,如果不存在就应该先加载类,再创建对象,容错. interface_exists:接口是否存在 method_exists:方法是否存在 get_class:得到对象类名 get_parent_class:得到父类的类名(不管父类是否继承自其他类) <?php //对象相关函数 class S{ } class A extends S{ private function test(){ } } class B extends A{…
参照刘汝佳的trie树 结构体 #include "stdio.h" #include "stdlib.h" #include "string.h" #include "malloc.h" /** *** 连接字符串和字符 **/ char* strcatch(char *str, char ch) { char *p = str; while (*p!='\0') { p++; } *p = ch; *(p+) = '\0'…
GeSHi Documentation Version 1.0.8.11 Authors: © 2004 - 2007 Nigel McNie © 2007 - 2012 Benny Baumann © 2008 - 2009 Milian Wolff GeSHi Website: http://qbnz.com/highlighter This is the documentation for GeSHi - Generic Syntax Highlighter. The most moder…
感觉对函数了解的不够深,从头到尾梳理一遍(更新中....) 1,class_exists(),interface_exists(),method_exists(),get_class(),get_parent_class() class_exists:类是否存在 在创建对象之前判断类是否存在,如果不存在就应该先加载类,再创建对象,容错. interface_exists:接口是否存在 method_exists: 方法是否存在 get_class:得到对象类名 get_parent_class:…
class_exists():判断某个类是否存在(定义过) interface_existe():判断接口是否存在 get_class():获取某个对象的"所属类名" get_parent_class():获取某个对象的"所属父类的类名" get_class_method():获取一个类的所以方法,返回一个索引数组,就是这些方法的名字. get_class_vars():获取一个类的所有属性,返回一个数组,下标为属性名,值为属性值. get_declared_cla…
PHP类/对象函数是PHP核心的一部分,无需要安装就可以使用. 函数名称 描述 __autoload 尝试加载未定义的类 class_alias 为一个类创建别名 class_exists 检查类是否已定义 get_called_class 后期静态绑定("Late Static Binding")类的名称 get_class_methods 返回由类的方法名组成的数组 get_class_vars 返回由类的默认属性组成的数组 get_class 返回对象的类名 get_declar…
一.数学  abs -- 绝对值 ceil -- 进一法取整 floor -- 舍去法取整 fmod -- 返回除法的浮点数余数 round -- 对浮点数进行四舍五入 sqrt -- 平方根 pi()/M_PI  -- 得到圆周率值 is_nan -- 判断是否为合法数值 is_finite -- 判断是否为有限值 is_infinite -- 判断是否为无限值 max -- 找出最大值,max(num1,num2,num3... ),max (array(num1,num2,num3...)…
与类有关的系统函数: class_exists(“类名”), 判断一个类是否存在(是否定义过) interface_exists(“接口名”), 判断一个接口是否存在(是否定义过) get_class( $obj ), 获得某个对象$obj 的所属类 get_parent_class($obj ), 获得某个对象$obj 的所属类的父类 get_class_methods(), 获得一个类的所有方法名,结果是一个数组,里面存储的是这些方法的名称 get_class_vars(), 获得一个类的所…
1.class_exists()函数接受表示类的字符串,检查并返回布尔值.如果类存在,返回true,否则返回false: echo class_exists('Computer'); 2.get_class ()函数获取对象的类名,如果不是对象,返回false. echo get_class($computer); 3.get_class_methods()函数获取类中的方法(公共的),以数组的形式返回. print_r(get_class_methods($computer)); 或者:pri…
class_exists 判断一个类是否存在,参数为一个名字! interface_exists 判断一个接口是否存在,参数也是为一个名字! method_exists 判断一个方法是否存在! 需要两个:第一个对象变量,第二个是一个方法名! 返回一个布尔值! 判断某个属性是否存在,就是使用isset get_class 获得当前对象所属的类! 参数是一个对象! get_parent_class 获得对象的父类名! get_class_methods 需要一个参数为一个类名,返回一个索引数组,里面…
不知道为什么,把数组序列化为json,然后存到redis(string类型).然后再取出来反序列化为数组,就变成对象数组了 thinkPHP普通数组取值$arr['key'] 对象数组取值$arr->key /** * [std_class_object_to_array 将对象转成数组] * @param [stdclass] $stdclassobject [对象] * @return [array] [数组] */ function std_class_object_to_array($s…
1. bool class_exists ( string $class_name [, bool $autoload = true ] )  检查指定的类是否已定义. 如果由 class_name 所指的类已经定义,此函数返回 TRUE,否则返回 FALSE. 2. array get_declared_classes ( void ) 返回由当前脚本中已定义类的名字组成的数组. 3.string get_class ([ object $obj ] ) 返回对象实例 obj 所属类的名字.如…
方案有多种: 一. 使用 get_object_vars() 方法 缺点: 只能显示 public 的 //只显示public的 var_dump(get_object_vars($test)); 处理: 在类中定义一个public 的方法, 外部对象调用即可显示所有属性(除了静态属性之外) function showAllProperties2(){ var_dump(get_object_vars($this)); } 二. 使用ReflectionClass类 能够获取所有的属性名 //显…
说明: bool is_subclass_of ( object $object , string $class_name ) 如果对象 object所属类是类 class_name的子类,则返回 TRUE ,否则返回 FALSE . 例子: // define a class class WidgetFactory { var $oink = 'moo' ; } // define a child class class WidgetFactory_Child extends WidgetFa…
在写php代码的时候,发现调用接口返回的结果类型是对象,不是自己想要的数组,于是乎,写了一个将对象转化数组的函数: /** * 将对象转化为数组 */ private function objectToArray($obj) { $_arr = is_object($obj) ? get_object_vars($obj) : $obj; $arr =array(); foreach ($_arr as $key => $val) { $val = (is_array($val) || is_o…
最简单的:$array = (array)$object; 但是, 如果对象的属性也是个对象的话, 就转换不了了, 就是说PHP的强制类型转换不能把对象属性中的对象转换成数组的下一个维度的数组, 刚刚找了手册说hw_objrec2array这个函数可以, 但是我用了提示 undefined, 然后就自己写了个如下: function ob2ar($obj) { if(is_object($obj)) { $obj = (array)$obj; $obj = ob2ar($obj); } else…
通过json_decode(json_encode($object)可以将对象一次性转换为数组,但是object中遇到非utf-8编码的非ascii字符则会出现问题,比如gbk的中文,何况json_encode和decode的性能也值得疑虑 多层数组和对象转化的用途很简单,便于处理WebService中多层数组和对象的转化简单的(array)和(object)只能处理单层的数据,对于多层的数组和对象转换则无能为力.通过json_decode(json_encode($object)可以将对象一次…
//对象转数组 function objectToArray($obj){ $arr = is_object($obj) ? get_object_vars($obj) : $obj; if(is_array($arr)){ return array_map(__FUNCTION__, $arr); }else{ return $arr; } } //数组转对象 function arrayToObject($arr){ if(is_array($arr)){ return (object) a…
对象和数组的相互转化在开发中也是很常见,一般不是多维的情况下直接(array)和(object)就可搞定了,多维的话,遍历下也就可以了: 1 <?php 2 class test 3 { 4 public $a,$b; 5 6 public function __construct($a) 7 { 8 $this->a = $a; 9 } 10 } 11 $t = new test(30); 12 //对象转数组 13 function object2array($obj) 14 { 15 $…
thinkphp有一个自动创建数据对象的create方法,核心代码如下 public function create($data='',$type='') { // 如果没有传值默认取POST数据 if(empty($data)) { $data = I('post.'); }elseif(is_object($data)){ $data = get_object_vars($data); } // 判断是否有主键,有代表修改,没有代表插入 $type = $type?:(!empty($dat…
从一个简单的例子说起: class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $person = new Person("php", 20); echo serialize($person) . PHP_EOL; $array = [ 'name' => 'php',…
/** * @author gayayang * @date 2012-8-21 * @todo 将对象转换成数组 * @param unknown_type $obj * @return unknown */ function object_to_array($obj){ $_arr = is_object($obj) ? get_object_vars($obj) :$obj; foreach ($_arr as $key=>$val){ $val = (is_array($val) ||…
在Model的构造函数中,$origin的初始化方式如下 if (is_object($data)) { $this->data = get_object_vars($data); } else { $this->data = $data; } // 记录原始数据 $this->origin = $this->data; $origin保存的是一个数组,因为如果保存的是对象的话,因为对象是引用,修改的时候会把$data和$origin同时修改了. 而我们需要的效果是$origin保…
1.网上很多方法分享说用empty()方法判断对象是否为空.empty()的方法介绍:格式:bool empty ( mixed var )功能:检查一个变量是否为空返回值:若变量不存在则返回 TRUE若变量存在且其值为"".0."0".NULL..FALSE.array().var $var; 以及没有任何属性的对象,则返回 TURE若变量存在且值不为"".0."0".NULL..FALSE.array().var $var…
<?php /** * */ /*class lantian { public $name; public $age; private $money; public $c; function __construct($name, $arg = '', $money) { $this->name = $name; $this->age = $arg; $this->money = $money; } function __isset($var) { //设置可以在外面检验的变量 $a…