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 静态变量与自定义常量的使用方法
Jan 26 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
Nov 02 PHP
解析用PHP读写音频文件信息的详解(支持WMA和MP3)
May 10 PHP
解析php时间戳与日期的转换
Jun 06 PHP
php中动态修改ini配置
Oct 14 PHP
PHP获取当前页面URL函数实例
Oct 22 PHP
帝国cms目录结构分享
Jul 06 PHP
PHP7 新特性详细介绍
Sep 06 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
Sep 11 PHP
安装docker和docker-compose实例详解
Jul 30 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 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验证码(支持中文)
2007/02/14 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
PHP CURL CURLOPT参数说明(curl_setopt)
2013/09/30 PHP
typecho插件编写教程(五):核心代码
2015/05/28 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
PHP echo()函数讲解
2019/02/15 PHP
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
JS实现动态移动层及拖动浮层关闭的方法
2015/04/30 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
JS实现JSON.stringify的实例代码讲解
2017/02/07 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
python 爬虫出现403禁止访问错误详解
2017/03/11 Python
python文件选择对话框的操作方法
2019/06/27 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
python3 logging日志封装实例
2020/04/08 Python
python中操作文件的模块的方法总结
2021/02/04 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
佳能德国网上商店:Canon德国
2017/03/18 全球购物
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
泰国演唱会订票网站:StubHub泰国
2018/02/26 全球购物
英国最大的香水商店:The Fragrance Shop
2018/07/06 全球购物
护理实习自我鉴定
2013/12/14 职场文书
商务邀请函范文
2014/01/14 职场文书
大学总结自我鉴定
2014/01/18 职场文书
电子表的操作介绍说明书
2019/10/28 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL
MongoDB数据库部署环境准备及使用介绍
2022/03/21 MongoDB
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS