PHP __ добираются и Частные переменные класса

Мы проделали большую работу по интеграции C ++ / Java. Проблема с передачей сложных структур данных через границу заключается в том, что вам необходимо упорядочить вызовы методов, что может быть действительно сложным и подверженным ошибкам усилием. Я обнаружил, что гораздо проще сделать что-то вроде этого:

  • На стороне Java используйте gson или jackson для сериализации вашей карты в JSON
  • Передайте строку JSON через границу
  • На стороне C ++ десериализовать JSON в std :: map

Я не так знаком со стороной C ++, но я вижу похожие проблемы, которые здесь решаются

9
задан Ben 18 June 2012 в 02:44
поделиться

2 ответа

Да.

<?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

10
ответ дан 4 December 2019 в 14:32
поделиться

Да. __get() и __set()__call() в этом отношении), вызываются, когда к элементу данных получают доступ, который не видим к текущему выполнению.

В этом случае, $var является частным, так получает доступ, это публично вызовет __get() рычаг.

4
ответ дан 4 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: