Size: a a a

2020 November 07

KN

Kirill Nesmeyanov in PHP
ну а как ещё?
источник

A

Alexcc in PHP
от задачи зависит просто кейс при котором по ссылке принимать в __call что то не приходит в голову
источник

R

R1KO in PHP
Kirill Nesmeyanov
ну а как ещё?
а точно есть необходимость в магии?
источник

KN

Kirill Nesmeyanov in PHP
ну задача сделать прокси на объект
источник

/

/bin/cat in PHP

class Test {
public function __call(string $name, array $args) {
 ++$args[0][0];
}
}

$test = new Test();
$i = 1;
$test->customCall([&$i]);
var_dump($i);
источник

KN

Kirill Nesmeyanov in PHP
$proxy = new Proxy($object);
$proxy->someMethod();
источник

KN

Kirill Nesmeyanov in PHP
осталось в этом __call возвращать по ссылке значения, если они в методе оригинального объекта так возвращаются
источник

/

/bin/cat in PHP
Самое логичное - написать мутабельный тип
источник

/

/bin/cat in PHP
и передать его как объект
источник

KN

Kirill Nesmeyanov in PHP
это наоборот шаг назад
источник

KN

Kirill Nesmeyanov in PHP
я как раз упрощаю и хочу вместо объектов скаляры передавать уметь
источник

/

/bin/cat in PHP
/bin/cat

class Test {
public function __call(string $name, array $args) {
 ++$args[0][0];
}
}

$test = new Test();
$i = 1;
$test->customCall([&$i]);
var_dump($i);
Передает скаляр
источник

/

/bin/cat in PHP
по явной ссылке даже
источник

KN

Kirill Nesmeyanov in PHP
это костыль
источник

KN

Kirill Nesmeyanov in PHP
и не соотвествует сигнатуре
источник

/

/bin/cat in PHP
в питоне вообще нет ссылок, например
источник

KN

Kirill Nesmeyanov in PHP
короче, для понимания рассказываю:

Есть функция, например int some(int* a, int* b, const int* c). Она принимает 3 указателя и два из них возвращаются по ссылке
источник

А

Алексей R in PHP
Kirill Nesmeyanov
Вот у меня вопрос, который мучает меня уже неделю: Как по ссылке принимать аргменты в __call

Хрен кто в чате на него ответит. Разве что @lisachenko сможет помочь)
до 5.3 включительно было можно, передавая по ссылке, а потом поменяли синтаксис и только костыли
источник

/

/bin/cat in PHP
что не так? Можно же юзать деструкторизацию
источник

KN

Kirill Nesmeyanov in PHP
я хочу иметь возможность нативного вызова этой шняги из пыха
источник