Как подключить трейт? почему у меня класс не может найти трейт?
Я вроде как понял тему трейта. Но когда дошло дело до практики, то просто мягко говоря не мог подключить трейт к классу.
Структура моей папки был таким:
1.index.php
2.main.php(class)
3.single.php(train)
index.php
main.php
single.php
Вроде, все ясно и понятно и все должно работать. Но он не может найти трейт Выдовая такую ошибку:Fatal error: Trait 'single' not found in C:\OSPanel\domains\text\public\main.php on line 9

21 Авг 2019 в 06:58
235 +1
0
Ответы
1

Проблема здесь в том, что при использовании трейта внутри класса, трейт должен быть доступен на момент объявления класса, а не только при подключении файла в index.php.

Для решения этой проблемы вы можете внести изменения в структуру папок вашего проекта:

Создайте папку "traits" в корне вашего проектаПереместите single.php в эту папку

После этого ваша структура файлов будет выглядеть так:

index.phpmain.phptraits
single.php

Измените свой main.php следующим образом:

<?php
require_once 'traits/single.php';
class main
{
use single;
}

Теперь трейт будет доступен на момент объявления класса main и ошибка должна исчезнуть.

20 Апр 2024 в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир