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实现网上点歌(二)
Oct 09 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
利用PHP实现短域名互转
Jul 05 PHP
解决Codeigniter不能上传rar和zip压缩包问题
Mar 07 PHP
php遍历文件夹和文件列表示例分享
Mar 11 PHP
ThinkPHP文件上传实例教程
Aug 22 PHP
php实现将Session写入数据库
Jul 26 PHP
文件上传之SWFUpload插件(代码)
Jul 30 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
php实现的操作excel类详解
Jan 15 PHP
php实现微信扫码支付
Mar 26 PHP
PHP网站自动化配置的实现方法(必看)
May 27 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()的用法
2013/06/05 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
用PHP的socket实现客户端到服务端的通信实例详解
2017/02/04 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
js 替换
2008/02/19 Javascript
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
jQuery中innerHeight()方法用法实例
2015/01/19 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
js实现登录与注册界面
2017/11/01 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
2018/08/06 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
React Router V4使用指南(精讲)
2018/09/17 Javascript
重学JS 系列:聊聊继承(推荐)
2019/04/11 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
[08:02]DOTA2牵红线 zhou神抱得美人归
2014/03/22 DOTA
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Selenium的使用详解
2018/10/19 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
澳大利亚优惠网站:Deals.com.au
2019/07/02 全球购物
给分销商的致歉信
2014/01/14 职场文书
法律进企业活动方案
2014/03/04 职场文书
社区道德讲堂实施方案
2014/03/21 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js