# Однократное подключение файлов в PHP

Пусть у нас есть файл `pow.php`, в котором хранится набор функций:

`<?php function square($num) { return $num ** 2; } function cube() { return $num ** 3; } ?>`

Пусть мы используем функции файла `pow.php` в файле `sum.php`:

`<?php require 'pow.php'; function squareSum($arr) { $res = 0; foreach ($arr as $elem) { $res += square($elem); } return $res; } function cubeSum($arr) { $res = 0; foreach ($arr as $elem) { $res += cube($elem); } return $res; } ?>`

Пусть в основном файле мы подключаем оба файла с функциями:

`<?php require 'pow.php'; require 'sum.php'; echo square(3) + squareSum([1, 2, 3]); ?>`

Нас, однако, поджидает проблема. К файлу `index.php` файл `pow.php` будет подключен два раза: сам по себе и через файл `pow.php`.

Это приведет к проблеме, так как у нас будут два набора функций с одинаковыми именами.

Для решения проблемы следует подключать все файлы через оператор `require_once` - он будет подключать файл только один раз, игнорируя повторный подключения:

`<?php require_once 'pow.php'; require_once 'sum.php'; echo square(3) + squareSum([1, 2, 3]); ?>`

Сделайте несколько файлов с полезными наборами функций. Подключите эти файлы друг к другу и к вашему основному файлу.

←→
↑