es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No se puede acceder a “función X” desde un archivo externo.

Quiero acceder a mi función connectDB() en Db.php desde index.php, pero sigue diciendo: “Función indefinida ‘connectDB'”. Aquí están los códigos.

Db.php

namespace App\kernel;

/**
 * Conexión a una base de datos
 *
 * @return \mysqli
 */
function connectDB(): \mysqli
{
    $server="localhost";
    $user="root";
    $pass="";
    $db="xp";
    $connexion = mysqli_connect($server, $user, $pass, $db);
    if (!$connexion)
        die("La conexión ha fallado: " . mysqli_connect_error());
    return $connexion;
}

index.php

use App\kernel\Db;

$db = connectDB();
if( !$db )
{
   exit();
}

echo 'success';

composer.json

{
    "name": "fl/xp",
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    },
    "require-dev": {
        "symfony/var-dumper": "^5.4"
    }
}

Gracias por tu ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que necesitas utilizar el espacio de nombres en tu archivo index.php para acceder a la función connectDB() en Db.php.

    Intenta cambiar el código de tu index.php por el siguiente:


    use App\kernel\Db; $db = Db\connectDB(); if (!$db) { exit(); } echo 'success';

    Al utilizar Db\connectDB() en lugar de connectDB(), haces referencia explícita a la función connectDB() dentro del espacio de nombres Db.

Comments are closed.