Edit report at https://bugs.php.net/bug.php?id=63026&edit=1
ID: 63026 Updated by: re...@php.net Reported by: ian dot xspace at yahoo dot cn Summary: require_once error Status: Feedback Type: Bug Package: *Compile Issues Operating System: windows 7 PHP Version: 5.3.16 Block user comment: N Private report: N New Comment: â$obj = $this->loadCS('M.share_model');//è°ç¨å ¶å®ç±» //ä½ å¯ä»¥å¤è°ç¨å 个类ï¼å¨ä¸é¢éè¯¯åæ³æ åµä¸ï¼æçç±»å¯ä»¥è°ç¨æåï¼æç失败 //sysModule éç对åºå ³ç³»ï¼åºè¯¥è¿ä¹å'C'=>CTRLS,åè æ éå¼å· â require_onceçè·¯å¾æ¯ç´æ¥æ¼çï¼èä¸ä¸æ¯autoloadï¼ ä»è¿é没æå ¶ä»çä¾åï¼å¦æé¨åç±»å大å°åéäºï¼å°±ä¼åºç°é¨åç±»æ¾ä¸å°çæ åµã å¨requireåå¢å ä¸ªæ£æ¥å°±è½ç¡®è®¤æè æé¤è¿ä¸ªé®é¢äº Previous Comments: ------------------------------------------------------------------------ [2012-09-12 10:25:08] larue...@php.net ä½ ä»åªéçåºæ¥å大å°åæå ³ç³»ç? ------------------------------------------------------------------------ [2012-09-12 10:15:04] re...@php.net çä½ è¿æ åµï¼æå¯è½æ¯ä½ ç大å°åé®é¢ï¼ ä½ æ¯ç´æ¥require_onceçï¼å¦æå¤§å°åéäºæ¯æé®é¢çã 为äºå¥½è°è¯ï¼ä½ å¯ä»¥å¨require_once åå ä¸ä¸ªif(!file_exists($file) {die($file not found)} æ£æ¥ä¸ä¸ã ä½ ç¡®è®¤ä¸ä¸æä»¶çç¡®åå¨å§ã åæ¶ï¼æ¯å¨ä¸è¡ï¼æä½ ç代ç 宿´æå ä¼ å°æä¸ªå°æ¹å§ãã ------------------------------------------------------------------------ [2012-09-12 02:03:08] larue...@php.net é£äºç±»åå¯ä»¥æ£ç¡®å è½½ ,é£äºç±»åä¸å¯ä»¥? ä½ ä¸¾ä¸ªä¾å? ------------------------------------------------------------------------ [2012-09-12 01:56:19] ian dot xspace at yahoo dot cn //init.php å®ä¹ç½ç«ç®å½ /***************************ç½ç«ç®å½å®ä¹***************************/ define('THEME', 'default'); //define('TEMP', WEB_ROOT.DS.'temp'); //define('LIBS', WEB_ROOT.DS.'libs'); define('VIEWS', WEB_ROOT.DS.'views'); define('LOGS', VIEWS.DS.'logs'); define('DYN', VIEWS.DS.'dynamic'); define('HLP', WEB_ROOT.DS.'helpers'); //define('PLNS', WEB_ROOT.DS.'plugins'); define('CONFS', WEB_ROOT.DS.'configs'); define('MODELS', WEB_ROOT.DS.'models'); define('CTRLS', WEB_ROOT.DS.'controls'); //SYS.php sysModule彿°éç对åºå ³ç³»ä¸ºéè¯¯åæ³ï¼æ£ç¡®åæ³åºè¯¥æ¯'M'=>MODELSåè æ éåå¼å· class SYS { //sysModuleç³»ç»ç®å½æ å° private function sysModule() { return array( 'M'=>MODELS, 'V'=>VIEWS, 'C'=>CTRLS, 'L'=>LIBS, 'P'=>PLNS, 'H'=>HLP ); } //getSysè·åç¸åºé ç½® public static function getSys($fun) { return self::$fun(); } } //common.php å ¶ä¸ä¸ä¸ªå½æ°ï¼å è½½æéè¦çç±» class Common { //loadCS protected function loadCS($cs) { $csName = substr($cs, 2); $type = strtoupper(strtok($cs, '.')); $moArr = SYS::getSys('sysModule'); //ç´æ¥å®ä½ require_once($moArr[$type].DS."{$csName}.php"); // switch($type) 以ä¸å°ä¼è·åæ´å¿«æ§è¡é度 // { // case 'M': // require_once(MODELS.DS."$csName.php"); // break; // case 'V': // require_once(VIEWS.DS."$csName.php"); // break; // case 'C': // require_once(CTRLS.DS."$csName.php"); // break; // case 'L': // require_once(LIBS.DS."$csName.php"); // break; // case 'P': // require_once(PLNS.DS."$csName.php"); // break; // case 'H': // require_once(HLP.DS."$csName.php"); // break; // default: // JS::willJS('alertMsg', 'è°ç¨å¤±è´¥!'); // } $CS = ucfirst($csName); return new $CS(); } } //index.php é¦é¡µè°ç¨å ¶å®ç±» //Index class Index extends IAN_C { //__construct public function __construct() { $obj = $this->loadCS('M.share_model');//è°ç¨å ¶å®ç±» //ä½ å¯ä»¥å¤è°ç¨å 个类ï¼å¨ä¸é¢éè¯¯åæ³æ åµä¸ï¼æçç±»å¯ä»¥è°ç¨æåï¼æç失败 //sysModule éç对åºå ³ç³»ï¼åºè¯¥è¿ä¹å'C'=>CTRLS,åè æ éå¼å· } } new Index //大å¥ä½ è¦æ¯åç䏿ç½ï¼æä¹æ²¡è¾äº ------------------------------------------------------------------------ [2012-09-12 01:48:03] ian dot xspace at yahoo dot cn æ©è¯´åï¼æè¿ä»¥ä¸ºé½æ¯å¤å½äººå¢ã //å®ä¹ç½ç«è·ç®å½ init.php define('WEB_ROOT', strtr(dirname(__FILE__), '\\', '/')); //å®ä¹ç½ç«çå ¶å®ç®å½ define('TEMP', WEB_ROOT.DS.'temp'); define('LIBS', WEB_ROOT.DS.'libs'); define('VIEWS', WEB_ROOT.DS.'views'); //ä¸é¢æ¯æåçä¸ä¸ªç±» sys.php class SYS { //è¿ä¸ªæ¯æ¯ä¸ªç®å½å¯¹åºçç®åï¼ä½æ¯è¿æ¯éè¯¯åæ³ï¼å¯å¨åæçç¨åºè°ç¨ä¸å± ç¶æç //å¯ä»¥æåæçå¤±è´¥äº $moArr = SYS::getSys('sysModule'); //require_once($moArr[$type].DS."{$csName}.php"); è¿æ ·å¯ä»¥ç´æ¥ //å¼å ¥æéè¦çæä»¶ï¼é¿å 使ç¨switch浪费æ¶é´ /* // switch($type) 以ä¸å°ä¼è·åæ´å¿«æ§è¡é度 // { // case 'M': // require_once(MODELS.DS."$csName.php"); // break; // case 'V': // require_once(VIEWS.DS."$csName.php"); // break; // case 'C': // require_once(CTRLS.DS."$csName.php"); // break; // case 'L': // require_once(LIBS.DS."$csName.php"); // break; // case 'P': // require_once(PLNS.DS."$csName.php"); // break; // case 'H': // require_once(HLP.DS."$csName.php"); // break; // default: // JS::willJS('alertMsg', 'è°ç¨å¤±è´¥!'); // } */ //è¿éæ¯ç³»ç»ç®å½å¯¹åºçåè¯ç®åï¼ä½æ¯è¿æ¯éè¯¯åæ³ //æ£ç¡®åæ³åºè¯¥æ¯ 'M'=>MODELS å颿 éå åå¼å·ï¼è½ç¶æ¯éè¯¯åæ³ä½æ¯ä½¿ç¨çæ¶å //æçå¯ä»¥æ£å¸¸ä½¿ç¨æçä¸è½æ£å¸¸ä½¿ç¨ï¼ private function sysModule() { return array( 'M'=>'MODELS', 'V'=>'VIEWS', 'C'=>'CTRLS', 'L'=>'LIBS', 'P'=>'PLNS', 'H'=>'HLP' ); } public static function getSys($fun) { return self::$fun(); } } //common.php å ¶å®ç¨åºå ±äº«ç±» class Common { //ç±»ä¸çä¸ä¸ªå½æ°ç¨äºè°ç¨æéè¦çå ¶ä»ç±» public function loadSomeClass($type) { $csName = substr($cs, 2); $type = strtoupper(strtok($cs, '.')); $moArr = SYS::getSys('sysModule'); //find module require_once($moArr[$type].DS."{$csName}.php"); } } //index.php æ¯å¦å¨index.php页é¢éè°ç¨å ¶ä»ç±»æä»¶ class Index { public function __construct() { require_once 'common.php'; $com = new Common(); $com->loadSomeClass('M.db_model');//å¼å ¥è¿ä¸ªç±»æä»¶æè mvcéçä»»ä½ä¸ä¸ªæä»¶ //é®é¢å°±åºå¨è¿é 'M'=>'MODELS', è¿ç§åæ³æ¯æéçï¼ä½æ¯è°ç¨loadSomeClass //æ¶åå± ç¶æçç±»å¯ä»¥æ£ç¡®å è½½èæçç±»ä¸è½æ£ç¡®å è½½ } } new Index(); //è¦æ¯è¿ç䏿åï¼ä½ åè¯æä»åªéä¸ä¼ æä»¶åï¼æè æçQQæ¯995668790ï¼ä»¥åæå¨ä½ çå客éåä½ èè¿ian,就说æbugç ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=63026 -- Edit this bug report at https://bugs.php.net/bug.php?id=63026&edit=1