Передаются ли переменные PHP по значению или по ссылке?
В PHP по умолчанию объекты php передаются как ссылка на passing-by-reference новый объект.
См. этот пример:
class X {
var $abc = 10;
}
class Y {
var $abc = 20;
function changeValue($obj)
{
$obj->abc = 30;
}
}
$x = new X();
$y = new Y();
echo $x->abc; //outputs 10
$y->changeValue($x);
echo $x->abc; //outputs 30
А pass-by-reference теперь посмотрите на это:
class X {
var $abc = 10;
}
class Y {
var $abc = 20;
function changeValue($obj)
{
$obj = new Y();
}
}
$x = new X();
$y = new Y();
echo $x->abc; //outputs 10
$y->changeValue($x);
echo $x->abc; //outputs 10 not 20 same as java does.
А pass-by-value теперь посмотрите на это:
class X {
var $abc = 10;
}
class Y {
var $abc = 20;
function changeValue(&$obj)
{
$obj = new Y();
}
}
$x = new X();
$y = new Y();
echo $x->abc; //outputs 10
$y->changeValue($x);
echo $x->abc; //outputs 20 not possible in java.
Надеюсь, вы pass-by-value понимаете это.
php
variables
pass-by-reference
pass-by-value
2021-12-01T18:48:36+00:00
2022-11-13T20:00:11+00:00
Sgushenka
Вопросы с похожей тематикой, как у вопроса:
Передаются ли переменные PHP по значению или по ссылке?
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.