脚本宝典收集整理的这篇文章主要介绍了PHP函数常用用法小结,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
<P style="FONT-SIZE: 12pt; MARGIN: 0in; COLOR: #366092; FONT-FAMILY: 宋体"><SPAN style="FONT-WEIGHT: bold">魔术函数
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 宋体">魔术函数是<SPAN style="FONT-FAMILY: 'Courier New'">PHP<SPAN style="FONT-FAMILY: 宋体">中内置的语言特性,当程序执行到某种情况时,如果定义了这些魔术函数<SPAN style="FONT-FAMILY: 'Courier New'">(PHP<SPAN style="FONT-FAMILY: 宋体">手册中称之为“<SPAN style="FONT-FAMILY: 'Courier New'">Overloading<SPAN style="FONT-FAMILY: 宋体">”<SPAN style="FONT-FAMILY: 'Courier New'">)<SPAN style="FONT-FAMILY: 宋体">,则<SPAN style="FONT-FAMILY: 'Courier New'">PHP<SPAN style="FONT-FAMILY: 宋体">会调用他们,同时也会传入相应的参数,可以认为是<SPAN style="FONT-FAMILY: 'Courier New'">PHP<SPAN style="FONT-FAMILY: 宋体">执行过程中的钩子函数。常见的魔术函数有<SPAN style="FONT-FAMILY: 'Courier New'">construct,destruct,call,get,set,isset,unsetsleep,wakeup,toString,clone <SPAN style="FONT-FAMILY: 宋体">以及<SPAN style="FONT-FAMILY: 'Courier New'">autoload <SPAN style="FONT-FAMILY: 宋体">。它们 <SPAN style="FONT-FAMILY: 宋体">可以用来自动加载包含文件,实现延迟执行(类似于<SPAN style="FONT-FAMILY: 'Courier New'">.Net<SPAN style="FONT-FAMILY: 宋体">中的属性访问器)、垃圾回收、对象<SPAN style="FONT-FAMILY: 'Courier New'">clone<SPAN style="FONT-FAMILY: 宋体">等操作,举个<SPAN style="FONT-FAMILY: 'Courier New'">autoload<SPAN style="FONT-FAMILY: 宋体">的例子,其他魔术函数参见 <SPAN style="FONT-FAMILY: 'Courier New'">Magic Method<SPAN style="FONT-FAMILY: 宋体">。
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 'Courier New'">__autoload($class_name)<SPAN style="FONT-FAMILY: 宋体">:用来自动加载包含文件,省得<SPAN style="FONT-FAMILY: 'Courier New'">include<SPAN style="FONT-FAMILY: 宋体">,<SPAN style="FONT-FAMILY: 'Courier New'">require<SPAN style="FONT-FAMILY: 宋体">,对性能有一定影响,但一般情况下可忽略。
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 宋体">下面是一个简单的例子
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">function
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">require_once $class_name . '.class.PHP';
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 宋体">把它放入<SPAN style="FONT-FAMILY: 'Courier New'">common.PHP<SPAN style="FONT-FAMILY: 宋体">等全局包含文件中,当新建一个对象时,比如<SPAN style="FONT-FAMILY: 'Courier New'"> $obj=new Class_A<SPAN style="FONT-FAMILY: 宋体">,如果<SPAN style="FONT-FAMILY: 'Courier New'">PHP<SPAN style="FONT-FAMILY: 宋体">无法找到<SPAN style="FONT-FAMILY: 'Courier New'">Class_A<SPAN style="FONT-FAMILY: 宋体">,则会把<SPAN style="FONT-FAMILY: 'Courier New'">"Class_A" <SPAN style="FONT-FAMILY: 宋体">作为参数<SPAN style="FONT-FAMILY: 'Courier New'">$class_name<SPAN style="FONT-FAMILY: 宋体">,执行<SPAN style="FONT-FAMILY: 'Courier New'"> autoload<SPAN style="FONT-FAMILY: 宋体">函数。这样就可以达到自动包含头文件的目的了。
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: Calibri">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 宋体">另外附赠几个常量和函数:
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 'Courier New'">string dirname ( string path )<SPAN style="FONT-FAMILY: 宋体">:返回路径中的目录部分。
<P style="FONT-SIZE: 12pt; MARGIN: 0in; COLOR: #366092; FONT-FAMILY: 宋体"><SPAN style="FONT-WEIGHT: bold">匿名函数
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 宋体">在<SPAN style="FONT-FAMILY: 'Courier New'">PHP5.3<SPAN style="FONT-FAMILY: 宋体">以前使用匿名函数,可以通过<SPAN style="FONT-FAMILY: 'Courier New'">create_function<SPAN style="FONT-FAMILY: 'Courier New'">()<SPAN style="FONT-FAMILY: 宋体">来创建匿名函数,
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">if ($a == $b)
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">return 0;
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">return ($a< $b) ? -1 : 1;
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 宋体">在<SPAN style="FONT-FAMILY: 'Courier New'">PHP5.3<SPAN style="FONT-FAMILY: 宋体">中,可以直接使用<SPAN style="FONT-FAMILY: 'Courier New'">lamda<SPAN style="FONT-FAMILY: 宋体">表达式
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">{
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'">{
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'">}
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">}
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">function foo($arg1)
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'">$var=3;
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'">{
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'">};
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">}
<P style="FONT-SIZE: 12pt; MARGIN: 0in; COLOR: #366092; FONT-FAMILY: Calibri">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">function outer()
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> $out_var=1;
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> {
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> echo "call inner\n";
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> //echo "call outer\n";
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 'Courier New'"> inner();<SPAN style="FONT-FAMILY: 'Courier New'">//<SPAN style="FONT-FAMILY: 宋体">如果不调用<SPAN style="FONT-FAMILY: 'Courier New'">inner(),<SPAN style="FONT-FAMILY: 宋体">则在访问<SPAN style="FONT-FAMILY: 'Courier New'">outer()<SPAN style="FONT-FAMILY: 宋体">时也不会被调用
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 'Courier New'">inner();<SPAN style="FONT-FAMILY: 'Courier New'">//<SPAN style="FONT-FAMILY: 宋体">虽然,函数是全局的,必须先调用<SPAN style="FONT-FAMILY: 'Courier New'">outer()<SPAN style="FONT-FAMILY: 宋体">,否则<SPAN style="FONT-FAMILY: 'Courier New'">inner()<SPAN style="FONT-FAMILY: 宋体">调用会报错(函数未定义)
<P style="FONT-SIZE: 12pt; MARGIN: 0in; COLOR: #366092; FONT-FAMILY: 宋体"><SPAN style="FONT-WEIGHT: bold">条件函数
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">$debug=false;
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">{
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> {
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> }
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 宋体">
<P style="FONT-SIZE: 12pt; MARGIN: 0in; COLOR: #366092; FONT-FAMILY: 宋体"><SPAN style="FONT-WEIGHT: bold">函数动态调用
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 宋体">函数名可以是变量名。
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">{
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">}
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">$func();
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 宋体">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 宋体">另外,可以通过<SPAN style="FONT-FAMILY: 'Courier New'">get_defined_functions<SPAN style="FONT-FAMILY: 'Courier New'">()<SPAN style="FONT-FAMILY: 宋体">来获取所有已定义的函数(注意是所有,包括内置函数)
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 宋体">调用类的方法则传入一个数组作为参数,此数组第一个元素是实例或类名,第二个元素是方法名:
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">{
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> {
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> }
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> {
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> }
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> {
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'"> }
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">$c=new myclass;
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 'Courier New'">//<SPAN style="FONT-FAMILY: 宋体">调用实例方法,如果<SPAN style="FONT-FAMILY: 'Courier New'">call_user_func(array($classname,'echo_age'));<SPAN style="FONT-FAMILY: 宋体">则会报错,<SPAN style="FONT-FAMILY: 'Courier New'">$this<SPAN style="FONT-FAMILY: 宋体">未指向任何实例
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">echo "\n";
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">call_user_func(array($classname,'i_echo_age'));
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 'Courier New'">//<SPAN style="FONT-FAMILY: 宋体">调用静态方法,传入类名或实例均可
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">echo "\n";
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 12pt; MARGIN: 0in; COLOR: #366092; FONT-FAMILY: 宋体"><SPAN style="FONT-WEIGHT: bold">获取函数参数
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 宋体">通过此方式可以实现非常灵活的重载,但容易使逻辑变得负责,适度使用。
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in"><SPAN style="FONT-FAMILY: 'Courier New'">func_num_args<SPAN style="FONT-FAMILY: 'Courier New'">()<SPAN style="FONT-FAMILY: 宋体">获取参数总个数
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 宋体">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">function call_it($func)
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'">$args=func_get_args();
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in 0in 0in 0.375in; FONT-FAMILY: 'Courier New'">call_user_func_array($func,$args);
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">{
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">}
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">{
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">}
<P style="FONT-SIZE: 10.5pt; MARGIN: 0in; FONT-FAMILY: 'Courier New'">echo "\n";
以上是脚本宝典为你收集整理的PHP函数常用用法小结全部内容,希望文章能够帮你解决PHP函数常用用法小结所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。