UNSET () совместим с автозагрузкой - PullRequest
0 голосов
/ 23 сентября 2011

Использование кода Amazon MWS config.ini.php для настройки классов для MarketplaceWebServices.

Это использовало определения автозагрузки для создания переменных с использованием new.

Поскольку мы используем разные учетные данные для авторизации на разных сайтах Amazon, мне нужно было изменить детали для сайтов.

Использование UNSET ()

unset($service);

до

$service = new MarketplaceWebService_Client(
     $AWS_ACCESS_KEY_ID, 
     $AWS_SECRET_ACCESS_KEY, 
     $config,
     APPLICATION_NAME,
     APPLICATION_VERSION
);

приводит к тому, что $ service не является объектом при повторном вызове.

Что приводит меня к вопросу «Совместим ли UNSET () с автозагрузкой?»

Ответы [ 3 ]

1 голос
/ 23 сентября 2011

unset() не имеет ничего общего с автозагрузкой и не будет мешать ему. Как только класс загружается с помощью автозагрузчика, unset() использование экземпляра больше не приведет к его недоступности.

Если бы это было так, вы бы получили сообщение о том, что MarketplaceWebService_Client не является доступным классом.

0 голосов
/ 26 сентября 2011

Запуск следующего демонстрирует, что unset должен нормально работать с автозагрузкой. Тестовый класс не использовал __contruct (). Похоже, что в MarketplaceWebService_Client MWS расстраивает яблочную корзину.

$shipping_calc = new shipping_calc();
echo "ORIG \$shipping_calc=" . print_r($shipping_calc, true);

unset($shipping_calc);
echo "UNSET() \$shipping_calc=" . print_r($shipping_calc, true);

$shipping_calc = new shipping_calc();
echo "NEW \$shipping_calc=" . print_r($shipping_calc, true);
0 голосов
/ 23 сентября 2011

UNSET () совместим с автозагрузкой?

Да. (Простой вопрос, простой ответ.)

...