با سلام و احترام
بنده یک دایرکتوری دارم به نام libs که داخلش یک فایل به نام func.php دارم که محتویاتش شامل :
<?php
function getFolders()
{
global $dbconnection;
//var_dump($dbconnection);
$sql = "select * from folders";
$stmt = $dbconnection->prepare($sql);
$stmt->execute();
$folders = $stmt->fetchAll(PDO::FETCH_OBJ);
return $folders;
}
و یک دایرکتوری دیگر به نام bootstrap دارم که داخلش یک فایل به نام init.php دارم که محتویاتش شامل :
<?php
include_once "constants.php";
include_once "config.php";
include_once "../vendor/autoload.php";
try {
$dbconnection = new PDO("mysql:host=$host;dbname=$database", $user, $pass);
// echo "coonetion successfully";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
include "../libs/func.php";
و در روت پروژه فایل index.php دارم که محتویاتش شامل :
<?php
include "bootstrap/init.php"; فایل اینیت را اینکلود کردم و داخل فایل اینیت فایل فانک اینکلود شده است
include "views/home.php";
$folders = getFolders();
print_r($folders);
سوال : زمانی که فایل index.php را در مرورگر اجرا میکنم متغیر $folders خروجی نمیدهد
و زمانی که فایل index.php را در محیط phpStorm اجرا میکنم خطا زیر را میدهد :
PHP Fatal error: Uncaught Error: Call to undefined function getFolders() in /home/mansour/PhpstormProjects/task_manager/index.php:6
به نظر مسیردهی فایل هایی که اینکلود کردم صحیح است
و در پایان عرض کنم زمانی که فایل include "libs/func.php"; را در فایل index.php اینکلود میکنم همه چیز کار میکند
اما در تعجبم چرا زمانی که فایل init.php در فایل index.php اینکلود شده است
و داخل فایل init.php فایل func.php اینکلود شده است کار نمیکند