激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php類自動加載失敗的處理方案及實例代碼

php類自動加載失敗的處理方案及實例代碼

2021-11-25 15:47小妮淺淺 PHP教程

在本篇文章里小編給大家整理了一篇關于php類自動加載失敗的處理方案及實例代碼,有興趣的朋友們可以學習參考下。

1、打開相應的PHP代碼文件。

2、添加“$class = str_replace("\\","/",$class);”代碼即可。

文件在本地win系統下測試無異常,代碼如下:

?
1
2
3
4
5
6
function stu_autoload($class){
    if(file_exists($class.".php")){        require ( $class.".php");
    }else{        die("unable to autoload Class $class");
    }
}
spl_autoload_register("stu_autoload");

部署到Ubuntu服務器上異常,報錯為 unable to autoload Class xxxxxx

解決方案

根據報錯,發現 $class 的值需要形如 stuApp\dao\StuInfo 才可行, 文件路徑需要將 \ 轉義成 /,因此添加一行代碼即可。

?
1
$class = str_replace("\\","/",$class);

綜上,修改后的自動加載代碼如下:

?
1
2
3
4
5
6
7
function stu_autoload($class){
    //路徑轉義
    $class = str_replace("\\","/",$class);    if(file_exists($class.".php")){        require ( $class.".php");
    }else{        die("unable to autoload Class $class");
    }
}
spl_autoload_register("stu_autoload");

知識點擴充:

類的自動加載

在外面的頁面中,并不需要去引入類文件,但程序會在需要一個類的時候自動去“動態加載”該類。

① 創建一個對象的時候new

② 直接使用一個類名(操作靜態屬性與方法)

使用spl_autoload_register()

用它注冊(聲明)多個可以代替__autoload()作用的函數,自然也得去定義這些函數,并且函數的作用跟__autoload()作用一樣,不過此時可以應對更多的情形

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//注冊用于自動加載的函數
spl_autoload_register("model");
spl_autoload_register("controll");
//分別定義兩個函數
function model($name){
  $file = './model/'.$name.'.class.php';
  if(file_exists($file)){
    require './model/'.$name.'.class.php';
  }
}
//如果需要一個類,但當前頁面還沒加載該類
//就會依次調用model()和controll(),直到找到該類文件加載,否則就報錯
function controll($name){
  $file = './controll/'.$name.'.class.php';
  if(file_exists($file)){
    require './controll/'.$name.'.class.php';
  }
}
?
1
2
3
4
5
6
7
//若注冊的是方法而不是函數,則需要使用數組
spl_autoload_register(
  //非靜態方法
  array($this,'model'),
  //靜態方法
  array(__CLASS__,'controller')
);

項目場景應用

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//自動加載
//控制器類 模型類 核心類
//對于所有的類分為可以確定的類以及可以擴展的類
spl_autoload_register('autoLoad');
//先處理確定的框架核心類
function autoLoad($name){
  //類名與類文件映射數組
  $framework_class_list = array(
    'mySqldb' => './framework/mySqldb.class.php'
  );
  if(isset($framework_class_list[$name])){
    require $framework_class_list[$name];
  }elseif(substr($name,-10)=='Controller'){
    require './application/'.PLATFORM.'/controller/'.$name.'.class.php';
  }elseif(substr($name,-6)=='Modele'){
    require './application/'.PLATFORM.'/modele/'.$name.'.class.php';
  }
}

到此這篇關于php類自動加載失敗的處理方案及實例代碼的文章就介紹到這了,更多相關php類自動加載失敗的解決辦法內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.py.cn/php/jiaocheng/33918.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 性欧美极品xxxx欧美一区二区 | 毛片视频免费观看 | 欧美极品欧美精品欧美视频 | 天天碰天天操 | av懂色 | 日韩一级视频 | 国产亚洲区 | 国产日产精品久久久久快鸭 | 国产精品成人亚洲一区二区 | 狠狠干狠狠操 | 成品片a免人视频 | 爱射av | 综合图区亚洲 | 精品欧美一区二区精品久久小说 | 欧美性生交xxxxx久久久 | 成人福利免费在线观看 | 日韩精品dvd| 三级18视频 | 久久艹艹艹 | 亚洲网站一区 | 中文字幕在线观看免费视频 | 羞羞网站视频 | 成人久久久精品乱码一区二区三区 | 国产羞羞网站 | 92自拍视频| 最新在线黄色网址 | 免费看成人av | 色婷婷久久久亚洲一区二区三区 | 国产精品久久久久久久午夜片 | 色蜜桃av | 国产黄色毛片 | 99在线热视频 | 中文字幕在线观看日韩 | 一级啪啪片 | 国产成年人视频网站 | 欧美另类激情 | 成人性生活视频在线观看 | 国产无限资源在线观看 | 久久久久久久国产a∨ | 欧美一区永久视频免费观看 | 蜜桃视频日韩 |