Я пытаюсь заставить унаследованный веб-сайт с PHP 5.3 работать на моем локальном компьютере, и может быть запутан в синтаксисе, потому что я не знаком с ООП или PHP. Есть строка кода, которая, я думаю, должна создать класс из массива:
$page = ContentPage::getPage($site['id'], $url);
где $ site — это массив, содержащий свойство id, а $ url — это index.php
На живом сайте это работает, но на моей локальной машине я получаю
Notice:Trying to get property of non-object
На этой строке конструктора $ page. Я использую PHP 5.3.1 на своей машине с Apache, и хотя на работающем сайте работает Windows Server IIS 6.0, я понимаю, что это не должно повлиять на мою способность запускать его на wamp?
Извините, я никогда не работал с этим более старым PHP, и мне интересно, не хватает ли мне чего-то базового в синтаксисе? Спасибо
РЕДАКТИРОВАТЬ: Добавление метода Getpage
static function getPage($site_id = 0, $url = '', $data = true){
if(!$site_id || !$url){
return false;
}
$url = mysql_real_escape_string($url);
if(!is_numeric($url)){
$url = "content_revision.url = '$url' ";
} else {
$url = "content_page.id = $url ";
}
$sql = "SELECT content_revision.*, content_template.machine_name AS template_name, content_template.id AS content_template_id,
content_page.is_sold,
content_page.new_home as new_home,
content_page.css_classes,
site.domain, site.name as site_name, site.id as site_id,
site.facebook_url,
site.google_url,
site.houzz_url,
site.blogspot_url,
site.youtube_url,
site.hours AS site_hours, site.telephone AS site_telephone, site.toll_free_telephone AS site_toll_free_telephone,
site.analytics as site_analytics,
site.machine_name as site_machine_name,
IF(content_revision.id IS NOT NULL, CONCAT_WS('/', site.domain, content_revision.url), '') AS `path`
FROM content_page
LEFT JOIN content_revision ON content_revision.id = content_page.publish_content_revision_id
LEFT JOIN content_template ON content_template.id = content_page.content_template_id
LEFT JOIN site ON site.id = content_page.site_id
WHERE $url AND content_page.site_id = $site_id";
$page = db_query_array($sql,'',true);
// echo "<!--\n";
// print_r($page);
// echo "-->";
if(!$page)
return false;
if($data)
$data = ContentRevision::getData($page['id'], $page['content_template_id']);
else
$data = false;
return array(
'meta' => $page,
'data' => $data,
);
}
Задача ещё не решена.
Других решений пока нет …