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 为构造参数,构造一个专门的反射类来考察传入的类的属性。
class Foo
{
private function priFunc(){}
protected function proFunc(){}
public function pubFunc(){}
}
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"
}
}
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com