Мы проделали большую работу по интеграции C ++ / Java. Проблема с передачей сложных структур данных через границу заключается в том, что вам необходимо упорядочить вызовы методов, что может быть действительно сложным и подверженным ошибкам усилием. Я обнаружил, что гораздо проще сделать что-то вроде этого:
Я не так знаком со стороной C ++, но я вижу похожие проблемы, которые здесь решаются
Да.
<?php
abstract class foo
{
public function __get($var)
{
echo "Parent (Foo) __get() called for $var\n";
}
}
class bar extends foo
{
private $var;
public function __construct()
{
$this->var = "25\n";
}
public function getVar()
{
return $this->var;
}
}
$obj = new bar();
echo $obj->var;
echo $obj->getVar();
?>
вывод:
$ php test.php
Родитель (Нечто) __ добирается (), призвал к var
25
Да. __get()
и __set()
(и __call()
в этом отношении), вызываются, когда к элементу данных получают доступ, который не видим к текущему выполнению.
В этом случае, $var
является частным, так получает доступ, это публично вызовет __get()
рычаг.