PHP可變函數學習小結_php執行個體

來源:互聯網
上載者:User

在上篇文章給大家介紹了php可變變數,今天通過本篇文章給大家介紹php可變函數,具體詳情如下。

PHP 支援可變函數的概念。這意味著如果一個變數名後有圓括弧,PHP 將尋找與變數的值同名的函數,並且嘗試執行它。可變函數可以用來實現包括回呼函數,函數表在內的一些用途。

可變函數不能用於例如 echo,print,unset(),isset(),empty(),include,require 以及類似的語言結構。需要使用自己的封裝函數來將這些結構用作可變函數。

Example #1 可變函數樣本

<?phpfunction 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()?>

也可以用可變函數的文法來調用一個對象的方法。

<?phpclass 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 方法和靜態屬性樣本

<?phpclass 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.?>

可以使用可變函數的方法列表如下:

<?phparray_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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.