PHP читает переменную как класс и пытается ее загрузить - PullRequest
1 голос
/ 17 января 2012

У меня есть следующий код в моем классе.$pm->new_route_waypoints = array (); if($pm->assumed_type == 'O') { $pm->new_route_start = $pm->addressStart; $pm->new_route_end = $pm->addressEnd; $pm->new_route_waypoints [] = $this->_record->addressStart; $pm->new_route_waypoints [] = $this->_record->addressEnd; $pm->offer_distance = $pm->totalDistance; $pm->offer_duration = $pm->totalDuration; } else { $pm->new_route_start = $this->_record->addressStart; $pm->new_route_end = $this->_record->addressEnd; $pm->new_route_waypoints [] = $pm->addressStart; $pm->new_route_waypoints [] = $pm->addressEnd; $pm->offer_distance = $this->_record->totalDistance; $pm->offer_duration = $this->_record->totalDuration; }

Когда эта строка $pm->new_route_waypoints [] = $pm->addressStart; запускается, она читает $ pm-> addressStart как класс, и автозагрузчик пытается загрузить его.В частности, он читает переменную «123 Main St, Wilson, WY 83014, USA», а затем выдает эту ошибку:

Предупреждение: include_once (/Sites/website/classes/class.123 Main St, Wilson, WY 83014, USA.php) [function.include-Once]: не удалось открыть поток: нет такого файла или каталога в /Sites/website/testbed_db/startsession.php в строке 11

Интересноон не выдает ту же ошибку в следующей строке кода $pm->new_route_waypoints [] = $pm->addressEnd;, значение которого совпадает с типом значения (адресом), что и в первой строке, которая вызывает ошибку.

Я изменил свой автозагрузчик, чтобы выполнитьinclude_once вместо require_once, поэтому он не нарушает мой код, но я не смог понять, почему я получаю эту ошибку.Я не думаю, что это как-то связано с моим кодом автозагрузчика, так как я пытался заменить его просто с помощью функции __autoload, но вот код на всякий случай:

define('ROOT',$_SERVER['DOCUMENT_ROOT'].'/');
function __autoload_libraries($class_name) 
{
    include_once ROOT."classes/class.".$class_name.".php";
}

spl_autoload_register('__autoload_libraries');

Дайте мне знать, если вам нужно большечтобы дать мне несколько идей.

Спасибо,

Мэтью

...