PHP可变函数学习小结


Posted in PHP onNovember 29, 2015

在上篇文章给大家介绍了php可变变量,今天通过本篇文章给大家介绍php可变函数,具体详情如下。

PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。

可变函数不能用于例如 echo,print,unset(),isset(),empty(),include,require 以及类似的语言结构。需要使用自己的包装函数来将这些结构用作可变函数。

Example #1 可变函数示例

<?php
function foo() {
 echo "In foo()<br />\n";
}
function bar($arg = '') {
 echo "In bar(); argument was '$arg'.<br />\n";
}
// 使用 echo 的包装函数
function echoit($string)
{
 echo $string;
}
$func = 'foo';
$func();  // This calls foo()
$func = 'bar';
$func('test'); // This calls bar()
$func = 'echoit';
$func('test'); // This calls echoit()
?>

也可以用可变函数的语法来调用一个对象的方法。

<?php
class Foo
{
 function Variable()
 {
  $name = 'Bar';
  $this->$name(); // This calls the Bar() method
 }
 function Bar()
 {
  echo "This is Bar";
 }
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // This calls $foo->Variable()
?>

当调用静态方法时,函数调用要比静态属性优先:

Example #3 Variable 方法和静态属性示例

<?php
class Foo
{
 static $variable = 'static property';
 static function Variable()
 {
  echo 'Method Variable called';
 }
}
echo Foo::$variable; // This prints 'static property'. It does need a $variable in this scope.
$variable = "Variable";
Foo::$variable(); // This calls $foo->Variable() reading $variable in this scope.
?>

可以使用可变函数的方法列表如下:

<?php
array_diff_assoc()
array_diff_key()
array_diff_uassoc()
array()
array_intersect_ukey()
array_map()
array_merge()
array_merge_recursive()
array_multisort()
array_push()
array_replace()
array_replace_recursive()
array_unshift()
call_user_func()
call_user_method()
compact()
dba_open()
dba_popen()
echo()
forward_static_call()
fprintf()
fscanf()
httprequestpool_construct()
ibase_execute()
ibase_set_event_handler()
ibase_wait_event()
isset()
list()
maxdb_stmt_bind_param()
maxdb_stmt_bind_result()
mb_convert_variables()
newt_checkbox_tree_add_item()
newt_grid_h_close_stacked()
newt_grid_h_stacked()
newt_grid_v_close_stacked()
newt_grid_v_stacked()
newt_win_choice()
newt_win_entries()
newt_win_menu()
newt_win_message()
newt_win_ternary()
pack()
printf()
register_shutdown_function()
register_tick_function()
session_register()
setlocale()
sprintf()
sscanf()
unset()
var_dump()
w32api_deftype()
w32api_init_dtype()
w32api_invoke_function()
wddx_add_vars()
wddx_serialize_vars()

下面给大家介绍下 PHP Math函数

php math简介

数学 (Math) 函数能处理 integer 和 float 范围内的值。

php math 函数

PHP:指示支持该函数的最早的 PHP 版本。

 

函数 描述 PHP
abs() 绝对值。 3
acos() 反余弦。 3
acosh() 反双曲余弦。 4
asin() 反正弦。 3
asinh() 反双曲正弦。 4
atan() 反正切。 3
atan2() 两个参数的反正切。 3
atanh() 反双曲正切。 4
base_convert() 在任意进制之间转换数字。 3
bindec() 把二进制转换为十进制。 3
ceil() 向上舍入为最接近的整数。 3
cos() 余弦。 3
cosh() 双曲余弦。 4
decbin() 把十进制转换为二进制。 3
dechex() 把十进制转换为十六进制。 3
decoct() 把十进制转换为八进制。 3
deg2rad() 将角度转换为弧度。 3
exp() 返回 Ex 的值。 3
expm1() 返回 Ex - 1 的值。 4
floor() 向下舍入为最接近的整数。 3
fmod() 返回除法的浮点数余数。 4
getrandmax() 显示随机数最大的可能值。 3
hexdec() 把十六进制转换为十进制。 3
hypot() 计算直角三角形的斜边长度。 4
is_finite() 判断是否为有限值。 4
is_infinite() 判断是否为无限值。 4
is_nan() 判断是否为合法数值。 4
lcg_value() 返回范围为 (0, 1) 的一个伪随机数。 4
log() 自然对数。 3
log10() 以 10 为底的对数。 3
log1p() 返回 log(1 + number)。 4
max() 返回最大值。 3
min() 返回最小值。 3
mt_getrandmax() 显示随机数的最大可能值。 3
mt_rand() 使用 Mersenne Twister 算法返回随机整数。 3
mt_srand() 播种 Mersenne Twister 随机数生成器。 3
octdec() 把八进制转换为十进制。 3
pi() 返回圆周率的值。 3
pow() 返回 x 的 y 次方。 3
rad2deg() 把弧度数转换为角度数。 3
rand() 返回随机整数。 3
round() 对浮点数进行四舍五入。 3
sin() 正弦。 3
sinh() 双曲正弦。 4
sqrt() 平方根。 3
srand() 播下随机数发生器种子。 3
tan() 正切。 3
tanh() 双曲正切。

PHP Math 常量

常量名 常量名 常量值 PHP
M_E e 2.7182818284590452354 4
M_EULER Euler 常量 0.57721566490153286061 5.2.0
M_LNPI log_e(pi) 1.14472988584940017414 5.2.0
M_LN2 log_e 2 0.69314718055994530942 4
M_LN10 log_e 10 2.30258509299404568402 4
M_LOG2E log_2 e 1.4426950408889634074 4
M_LOG10E log_10 e 0.43429448190325182765 4
M_PI Pi 3.14159265358979323846 3
M_PI_2 pi/2 1.57079632679489661923 4
M_PI_4 pi/4 0.78539816339744830962 4
M_1_PI 1/pi 0.31830988618379067154 4
M_2_PI 2/pi 0.63661977236758134308 4
M_SQRTPI sqrt(pi) 1.77245385090551602729 5.2.0
M_2_SQRTPI 2/sqrt(pi) 1.12837916709551257390 4
M_SQRT1_2 1/sqrt(2) 0.70710678118654752440 4
M_SQRT2 sqrt(2) 1.41421356237309504880 4
M_SQRT3 sqrt(3) 1.73205080756887729352 5.2.0

PHP 相关文章推荐
PHP的开发框架的现状和展望
Mar 16 PHP
apache php模块整合操作指南
Nov 16 PHP
PHP自动生成后台导航网址的最佳方法
Aug 27 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
Jul 05 PHP
PHP+jquery实时显示网站在线人数的方法
Jan 04 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 PHP
Composer设置忽略版本匹配的方法
Apr 27 PHP
Yii隐藏URL中index.php的方法
Jul 12 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 PHP
PHP可变变量学习小结
Nov 29 #PHP
PHP中对数组的一些常用的增、删、插操作函数总结
Nov 27 #PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 #PHP
实例简介PHP的一些高级面向对象编程的特性
Nov 27 #PHP
PHP编程中的__clone()方法使用详解
Nov 27 #PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 #PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 #PHP
You might like
非常好用的两个PHP函数 serialize()和unserialize()
2012/02/04 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
thinkPHP通用控制器实现方法示例
2017/11/23 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
JavaScript中ES6 Babel正确安装过程
2016/07/18 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
微信小程序 下拉菜单的实现
2017/04/06 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
2019/09/27 jQuery
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python3.2中Print函数用法实例详解
2015/05/19 Python
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
Python统计日志中每个IP出现次数的方法
2015/07/06 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
2018/11/16 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
介绍下WebSphere的安全性
2013/01/31 面试题
土木工程毕业生自荐信
2013/11/12 职场文书
高三体育教学反思
2014/01/29 职场文书
日化店促销方案
2014/03/26 职场文书
英语专业求职信
2014/07/08 职场文书
解除同居协议书
2015/01/29 职场文书
入党介绍人意见怎么写
2015/06/03 职场文书
校运会班级霸气口号
2015/12/24 职场文书
对PyTorch中inplace字段的全面理解
2021/05/22 Python
Win11怎么跳过联网验机 ?Win11跳过联网验机激活教程
2022/04/05 数码科技
python基础之//、/与%的区别详解
2022/06/10 Python
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL