Я думаю, вы ищете функцию include_once
. По сути, вы хотите, чтобы каждый из ваших классов был в отдельном файле, а затем, когда вы хотите их использовать, вы вызываете include_once("thatfile.php");
, чтобы сделать этот класс доступным для вашего приложения.
Я должен уточнить, что вы должны использовать include_once
(или require_once
, если хотите) вместо include
, потому что, если вы дважды включите свой файл класса, вы получите ошибки, говорящие, что вы ' пытаемся определить класс, который уже существует.
Используя ваш пример, ваша программа будет выглядеть так:
MessageClass.php
<?php
class Message {
public $message;
// Return a string containing a list of messages found
public function listMessages($delim = ' '){
if (count($this->message) > 0){
echo implode($delim,$this->message);
}else{
return false;
}
}
// Manually add Message
public function addMessage($description){
$this->message[] = $description;
}
}
index.php
<?php
include_once("MessageClass.php");
$message = new Message();
$message->addMessage('Article Title 1'); $message->addMessage('Article Title 2');
$message->listMessages();
Также обратите внимание, что я изменил ваши переменные класса (члены) и функции (методы), чтобы включить модификатор public
. Я не уверен на 100% в том, как это работает в PHP, но в большинстве языков эти значения по умолчанию равны private
, что означает, что к ним нельзя получить доступ извне класса. Всегда лучше включать их, чтобы было понятно.
Возможно, вы захотите взглянуть на функцию __autoload()
, которая вызывается всякий раз, когда вы пытаетесь использовать класс, который еще не определен. В этой функции, которую вы определяете сами, вы можете выяснить, в каком файле находится данный класс, и include_once
автоматически, когда вам это нужно. В более общем смысле вам следует обратиться к функции spl_autoload_register
, которая является тем же самым, но с гораздо большей гибкостью.