Допустим, у меня есть два файла 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 ?>