Как использовать класс PHP из другого файла

Допустим, у меня есть два файла class.php и page.php

class.php

<?php class IUarts { function __construct() { $this->data = get_data('mydata'); } } ?> 

Это очень грубоватый пример, но, допустим, я хочу использовать:

 $vars = new IUarts(); print($vars->data);` 

в моем файле page.php; как я могу это сделать? Если я include(LIB.'/class.php'); он кричит на меня и дает мне Fatal error: Cannot redeclare class IUarts in /dir/class.php on line 4

Вы можете использовать include / include_once или require / require_once

 require_once('class.php'); 

В качестве альтернативы, используйте автозагрузку , добавив в page.php

 <?php function __autoload($class_name) { require_once $class_name . '.php'; } $vars = new IUarts(); print($vars->data); ?> 

Он также работает над добавлением функции __autoload в lib, которую вы включаете в каждый файл, например utils.php .

Существует также этот пост, который имеет хороший и отличный подход.

Эффективная стратегия автоматической загрузки и именования PHP

В этом случае, похоже, вы уже включили файл где-нибудь. Но для файлов классов вы должны «включить» их, используя require_once чтобы избежать такого рода вещей; он не будет включать файл, если он уже был. (И вы обычно должны использовать require[_once] , а не include[_once] , разница, которая require , приведет к фатальной ошибке, если файл не существует, вместо того, чтобы просто выдавать предупреждение.)

Вместо этого используйте include_once .
Эта ошибка означает, что вы уже включили этот файл.

include_once(LIB.'/class.php');

Использовать include("class.classname.php");

И класс должен использовать <?php //code ?> not <? //code ?> <?php //code ?> not <? //code ?>