当一个数组作为参数传递给方法或函数时,它是通过引用传递的吗?
这样做怎么样:
$a = array(1,2,3);
$b = $a;
Run Code Online (Sandbox Code Playgroud)
是$b参考$a?
我刚收到一个错误.
当我尝试分配这样的对象时:
$obj_md = new MDB2();
Run Code Online (Sandbox Code Playgroud)
我得到的错误是"不推荐使用引用分配新值的返回值".实际上我一直在寻找一个解决方案,但我见过的唯一一个就是拒绝php.ini(error_reporting)的政治.我也尝试过,但它没有用.
这太令人困惑了......我希望你能帮助我.提前致谢.
在学习新的编程语言时,您可能遇到的一个可能的障碍是,默认情况下,该语言是按值传递还是按引用传递.
所以这是我对你们所有人的问题,用你最喜欢的语言,它是如何实际完成的?什么是可能的陷阱?
language-agnostic oop parameters pass-by-reference pass-by-value
我试图在函数内更改函数之外的变量.因为如果函数检查的日期超过一定数量,我需要它来更改代码开头的日期年份.
$var = "01-01-10";
function checkdate(){
if("Condition"){
$var = "01-01-11";
}
}
Run Code Online (Sandbox Code Playgroud) 代码答案:
$larry = & $fred;
Run Code Online (Sandbox Code Playgroud)
评论:
这已被弃用并生成警告
但我不认为这是正确的.或者是吗?
所以基本上问题是:
我可以通过引用将变量复制到另一个变量吗?
我有一个看起来像这样的功能......
function filterwords($input='poo poo hello world bum trump'){
$report_swear = 0;
$badwords = array('poo','bum','trump');
$filterCount = sizeof($badwords);
for($i=0; $i<$filterCount; $i++){
$input = preg_replace_callback('/\b'.preg_quote($badwords[$i]).'\b/i', function($matches) use ($report_swear) {
$report_swear++;
return str_repeat('*', 4);
}, $input);
}
print_r($report_swear);
return $input;
}
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我希望$ report_swear变量返回4,但它仍然返回0.
知道如何在回调中改变这个吗?
谢谢