php内容可阅读性检测,PHP 的检测 函数--关于变量类型、数据存在性、可用性 的检测函数...

PHP 的函数多如牛毛,常用的自然记住,不常用的真的记不住...

这里列出是是关于变量类型、数据存在性、可用性 的检测函数

gettype() //返回变量类型的字符串描述,类似 js 的  typeof ,由于变量类型被多次修改,不建议使用

settype() //修改变量类型(不仅仅修改变量的值,与类型转换不同)

var_export(expression,true) //打印数据的合法 php 代码字符串(可 eval ),true 将代码返回不打印

var_dump(expression1,expression2,...) //打印数据及其类型

print_r(expression) //打印数据,如果是数组或对象,会打印出其结构

empty() //只接受变量及对象属性、数组元素、字符串截取的值,总之,不接受常量及表达式

isset() //不接受常量及表达式

define(constantName, value)//定义常量

defined(constantName) //是否已经定义常量

constant(constName) //返回常量的值

is_null()

is_bool(var)

is_int(var) //这几个作用一样,只是别名

is_integer()

is_long()

is_float(var) //这几个作用一样,只是别名

is_double()

is_real()

is_numeric(var)

is_infinite(val)

is_finite(val)

is_nan(val)

is_string(var)

is_scalar(var)

is_array(var)

is_object(var)

is_resource(var)

is_a(object, class_name) //不建议使用,应使用 object instanceof class_name

(object instanceof class_name) //检测继承关系

is_subclass_of(object|sub_class_name, class_name)

is_soap_fault(object)

is_link(filename)

is_uploaded_file(filename)

is_file(filename)

is_dir(filename)

is_writable(filename)

is_writeable() // is_writeable的别名

is_readable(filename)

is_executable(filename)

is_callable(name)  // 针对类的方法时,不同版本对 static 方法的判定不一样,抽象函数其实不能执行,但也返回 true,建议使用在变量和普通函数字 上,PHP 5 支持匿名函数后,参数可以是匿名函数(clousre),PHP 的某些函数传参可以是 callback 类型,要求传入一个匿名函数 或可执行函数的字符串标识,is_callable 可以用来在校验这个参数是否为 callback.

func_get_arg(int arg_index) //通过参数序号获取函数被调用时的传参(不包括带有默认值,但未传参的默认参数,下面几个函数也是),PHP5.3 之后,这些函数通过包含文件的形式引入函数将导致错误

func_get_args(); //获取函数的所有传参,返回数组,传参个数可能多于形参个数,如果少于形参个数,除非被忽略的参数在函数声明时有默认值,否则会发出警告,

func_num_args(); //传参个数,

file_exists(filename)

array_key_exists(key, search)

class_exists(class_name[, __autoload]) //默认会尝试 __autoload(),可以将第二参数设为 false来阻止

interface_exsists(interface_name[,__autoload])//可以设置第二个参数为false阻止 __autoload()

method_exists(object|class_name, method_name)  //能检测公有、私有、保护方法,自 php4.05 起,类似的函数传参可以是 object 也可以是 class_name

property_exists(object|class_name, property)//能检测公有、私有、保护属性

class_parents(object|class_name[,__autoload]) //spl 代码库,设置第二个参数位 false 来阻止自动加载类

class_implements(object|class_name[,__autoload]) //spl代码库,返回实现那些接口,设置第二个参数位 false 来阻止自动加载类

get_class([object]) //自php5起,如果在对象的方法内执行可以省略参数,获取当前对象的类名

get_parent_class(object|class_name)

get_called_class() //在对象的方法内执行,如果此方法是继承来的,返回子类类名而不是父类

get_class_methods(object|class_name)//只能获取公有方法

get_object_vars(object) //只能获取公有属性,不接受类名传参,在 php4.2之前只返回已经赋值的属性

get_defined_constants() //声明的常量

get_defined_vars() //声明的变量

get_declared_interfaces() //声明的接口

get_declared_classes() //已声明的类

get_defined_functions() //已声明的函数

get_loaded_extensions() //已加载的插件

get_extension_funcs(module_name) //在插件中声明的函数

get_required_files()

get_include_path() //返回 php.ini 中定义的包含路劲 ini_get('include_path')

getcwd() //当前文件所在文件夹路劲,某些 unix 系统需要当前目录的任一父目录的读写权限才能获取该路劲

glob(pattern,[frag]) //返回匹配的所有文件的信息,如 glob('*.txt')

dirname(path) //返回文件路劲的文件夹部分

getimagesize(filename) //返回图片文件信息

get_resource_type(handle) //返回资源类型的字符串描述

get_meta_tags(filename,[isurl]) //返回 html 文件 head 标签内的 meta ,只返回有 name 属性的 meta

get_headers(url) //请求服务器返回的 http 响应头

getallheaders() //返回客户端发来的 http 请求头,仅用于 apache 服务器

apache_request_headers() //getallheaders 的别名

get_browser()// 检测浏览器支持的功能,只检查 browscap.ini 内描述的功能,请在 php.ini 内配置 browscap.ini 的路劲,注意,检测 到浏览器支持某个功能并不代表允许使用某项功能,比如,用户也许进行了设置禁止某些网站使用 cookies

get_cfg_var(option) //返回在 php,ini 中显式设置的配置项的值

ini_get(varname) //返回 php 配置项

ini_set(varname, newvalue) //在脚本中临时设置 配置项,脚本执行完毕后配置项的值将复原

ini_get_all() //所有配置项

ini_restore(varname) //在脚本中恢复临时修改的配置项的值

phpinfo() //打印出 php 环境配置参数

php_ini_loaded_file() //返回 php.ini 文件的绝对路劲

//特殊字符的转义

get_magic_quotes_gpc()

get_magic_quotes_runtime()

get_html_translation_table([HTML_ENTITIES|HTML_SPECIALCHARS]) //查看特殊字符将如何被转义

time() //系统时间戳

array getdate()

array gettimeofday()

date_default_timezone_get()

date_default_timezone_set(timezone_identifier) //也许需要查表看看timezone_identifier的值字符串

system() //执行系统命令 如 windows中 system('dir'); system('msconfig')

//魔术常量

__LINE__文件中的当前行号。

__FILE__文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

__DIR__文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。

__FUNCTION__函数名称。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

__CLASS__类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

__METHOD__类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

__NAMESPACE__当前命名空间的名称(大小写敏感)。这个常量是在编译时定义的。

$GLOBALS  //保存所有全局变量的数组

$_SERVERS //服务器请求的相关参数

关于类的反射的更高级的用法,参考 专门的 反射类 Reflaction, 这个类以 class_name 或 object 为构造参数,构造一个专门的反射类来考察传入的类的属性。

classFoo

{private functionpriFunc(){}protected functionproFunc(){}public functionpubFunc(){}

}function get_class_all_methods($class){$r = new ReflectionClass($class);//反射类foreach($r->getMethods() as $key=>$methodObj){if($methodObj->isPrivate())$methods[$key]['type'] = 'private';elseif($methodObj->isProtected())$methods[$key]['type'] = 'protected';else

$methods[$key]['type'] = 'public';$methods[$key]['name'] = $methodObj->name;$methods[$key]['class'] = $methodObj->class;

}return $methods;

}$methods = get_class_all_methods('Foo');var_dump($methods);

运行结果:

array(3) {

[0]=>

array(3) {

["type"]=>

string(7) "private"["name"]=>

string(7) "priFunc"["class"]=>

string(3) "Foo"}

[1]=>

array(3) {

["type"]=>

string(9) "protected"["name"]=>

string(7) "proFunc"["class"]=>

string(3) "Foo"}

[2]=>

array(3) {

["type"]=>

string(6) "public"["name"]=>

string(7) "pubFunc"["class"]=>

string(3) "Foo"}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值