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写的小东西
Dec 06 PHP
实现了一个PHP5的getter/setter基类的代码
Feb 25 PHP
PHP 中检查或过滤IP地址的实现代码
Nov 27 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
php 注释规范
Mar 29 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
PHP互换两个变量值的方法(不用第三变量)
Nov 14 PHP
php 魔术常量详解及实例代码
Dec 04 PHP
Zend Framework框架中实现Ajax的方法示例
Jun 27 PHP
php实现微信公众号企业转账功能
Oct 01 PHP
php弹出提示框的是实例写法
Sep 26 PHP
PHP二维数组分页2种实现方法解析
Jul 09 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写的简易聊天室代码
2011/06/04 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
PHP生成zip压缩包的常用方法示例
2019/08/22 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
javascript获取flash版本号的方法
2014/11/20 Javascript
jQuery搜索同辈元素方法
2015/02/10 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
JS通过调用微信API实现微信支付功能的方法示例
2017/06/29 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
Python实现Windows上气泡提醒效果的方法
2015/06/03 Python
python实现下载指定网址所有图片的方法
2015/08/08 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
python进阶_浅谈面向对象进阶
2017/08/17 Python
Python多线程处理实例详解【单进程/多进程】
2019/01/30 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
详解canvas绘制多张图的排列顺序问题
2019/01/21 HTML / CSS
沃尔玛加拿大:Walmart.ca
2020/03/02 全球购物
应届毕业生求职信范文
2013/12/18 职场文书
考试没考好检讨书
2014/01/31 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
区域销售大会开幕词
2016/03/04 职场文书
Ajax实现异步加载数据
2021/11/17 Javascript
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL
python实现商品进销存管理系统
2022/05/30 Python