&引用变量的问题
时间:2011-12-01
来源:互联网
PHP code
function _is_numerice($var) { if(is_numeric($var)) { return true; } } $var = 123456; _is_numerice($var); _is_numerice(&$var); //此处使用&, 是否增加了效率?
作者: gaozhen1990 发布时间: 2011-12-01
这样增加了效率PHP code
function _is_numerice(&$var)
作者: xsxs89757 发布时间: 2011-12-01
这么小的变量引用效率几乎没什么差别吧。数据量大的时候可能就有些提高。
还有怎么不直接 is_numeric($var) 了得。怎又写个函数又套了一下。
还有怎么不直接 is_numeric($var) 了得。怎又写个函数又套了一下。
作者: ci1699 发布时间: 2011-12-01
(⊙o⊙)…。 是这样的, is_numerice只是个简单例子,里面还有好多分析代码的。
function _is_numerice(&$var) 和直接使用 _is_numerice(&$var) 用什么区别吗?
function _is_numerice(&$var) 和直接使用 _is_numerice(&$var) 用什么区别吗?
作者: gaozhen1990 发布时间: 2011-12-01
1、由于只改变了变量的传递方式,并没有改变运算逻辑,所以只考虑内存的使用情况
PHP code
696192
696192
696192
696192
结论:传值和传引用使用的内存是一样的
2、这种传引用的方式在 php 5.3 中已废止
Deprecated: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of _is_numerice(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in ...
已过时:调用时按引用传递已经过时,如果你想通过引用传递,修改_is_numerice声明()。如果你想使调用时按引用传递,你可以设置在您的INI文件在D allow_call_time_pass_reference
PHP code
function _is_numerice($var) { if(is_numeric($var)) { echo memory_get_usage(),PHP_EOL; return true; } } $var = 123456; echo memory_get_usage(),PHP_EOL; _is_numerice($var); echo memory_get_usage(),PHP_EOL; _is_numerice(&$var); //此处使用&, 是否增加了效率?得到
696192
696192
696192
696192
结论:传值和传引用使用的内存是一样的
2、这种传引用的方式在 php 5.3 中已废止
Deprecated: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of _is_numerice(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in ...
已过时:调用时按引用传递已经过时,如果你想通过引用传递,修改_is_numerice声明()。如果你想使调用时按引用传递,你可以设置在您的INI文件在D allow_call_time_pass_reference
作者: xuzuning 发布时间: 2011-12-01
引用 3 楼 gaozhen1990 的回复:
(⊙o⊙)…。 是这样的, is_numerice只是个简单例子,里面还有好多分析代码的。
function _is_numerice(&$var) 和直接使用 _is_numerice(&$var) 用什么区别吗?
(⊙o⊙)…。 是这样的, is_numerice只是个简单例子,里面还有好多分析代码的。
function _is_numerice(&$var) 和直接使用 _is_numerice(&$var) 用什么区别吗?
个人感觉,加引用和不加引用类似C里面的值传递和指针传递
_is_numerice($var);
是在内存中复制一个和$var变量同样的值变量,把这个新变量交给函数使用,所以函数的运行不会影响外部的$var
_is_numerice(&$var);
是把$var的内存地址传给函数使用,函数运行的操作会直接影响函数外部的$var
弄个测试:
PHP code
$var=12345; function test($a) { return ++$a; } echo test($var).'<br>'.$var.'<br>'; echo test(&$var).'<br>'.$var.'<br>';
作者: sink 发布时间: 2011-12-01
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28