-1

私は自分のプロジェクトを展開しようとしていますが、少し風変わりなエラーが発生し、IDE と xDebug が私のような初心者に多くのオプションを提供していないという問題があります。

次のコードにはいくつかの問題がありますが、未定義の定数の使用にはインクルードが含まれていると想定されています。

<?php

//Debug Error Reporting Configuration
error_reporting(E_ALL);


/*
    Do Not Change any of these items unless 
    you know what they do and you realy 
    have to change them
*/

//Global Function to return includes path
function includes($path, $location){
    return $_SERVER['DOCUMENT_ROOT']. "/" .$path. "/" .$location;
}

//Global Function to return single location path
function location($path){
    return $_SERVER['DOCUMENT_ROOT']. "/" .$path;
}

//Global Functions Include
require(includes(includes, 'functions.php'));

//Messaging Array
$messages=array();

//Database Configuration & Connection
$dbhost="localhost";
$dbuser="root";
$dbpass="SaltWater";
$dbname="platform";

connectToDB();

//Session Variable Registration
session_register("f_name");
session_register("user_id");
session_register("company_id");

//Smarty Template Engine Configuration
define('SMARTY_DIR',  includes(includes, smarty));
require(SMARTY_DIR . 'Smarty.class.php');

$smarty = new Smarty();
$smarty->setTemplateDir(location(templates));
$smarty->setCompileDir(location(cache));
$smarty->setCacheDir(location(cache));


function errorsys($type, $detail){

    $smarty->assign('type',$type);
    $smarty->assign('detail',$detail);
    $smarty->display('error.tpl');
}

?>

編集:これが別のサーバーに展開された場合に備えて、フォルダーを通常のドリルダウンせずにインクルードを行うためのスマートな方法を作成する、まだ発見していない簡単な方法はありますか?

4

2 に答える 2

1
require(includes('includes', 'functions.php'));

インクルード関数に渡すパスが文字列であることを確認する必要があります。逆コンマがない場合、PHP は宣言されていない定数を渡していると見なします。PHP は文字列であると想定するため、コードは引き続き機能しますが、警告が発行されます。

于 2013-02-01T09:21:20.800 に答える
0

インクルードは定数としてどこかで定義されていますか? 多分あなたが意味した

require(includes(includes, 'functions.php'));  //if constant includes is defined

または

require(includes($includes, 'functions.php'));  //if path is stored in $includes

または、あなたが意味した

require(includes('includes', 'functions.php')); //if path is 'includes/'
于 2013-02-01T09:19:23.307 に答える