這篇文章給大家介紹php新建類相關問題分析及解決辦法,涉及到php新建類相關知識,本文介紹的非常詳細,非常具有參考借鑒價值特此分享供大家參考
下面先給大家分析php新建類的問題
index.php文件
- function __autoload($_className) {
- require $_className.'.class.php';
- }
- <span style="color: #ff0000">//新建類??
- if (isset($_GET['index'])) {
- $m=new Main($_GET['index']);
- }else{
- $m=new Main();
- </span>}
- include $m->ui();
main.class.php文件
- class Main{
- private $index;
- //構造方法,初始化數據
- public function __construct($index=''){
- $this->index=$index;
- }
- //ui函數include相應的包含文件
- public function ui(){
- if(empty($this->index)||!file_exists($this->index.'.inc')){
- $this->index='start';
- }
- return $this->index.'.inc';
- }
- }
紅字的部分有啥意義了
:類中構造函數傳參值已設默認是空(public function __construct($index='')),為啥不能直接寫$m=new Main($_GET['index']);。如果不想在index做紅字的if判斷,類里需要怎么寫了。謝謝,不是太理解
------解決思路----------------------
- if (isset($_GET['index'])) {
- $m=new Main($_GET['index']); //如果 $_GET['index'] 存在則將 $_GET['index'] 作為參數
- }else{
- $m=new Main(); //否則使用默認參數
- }
直接使用 $_GET['index'] 將可能引發 NOTICE 級別錯誤
不加區別的使用傳入數據,可能引發安全問題
------解決思路----------------------
稍微改了一下你看咋樣。
- <?php
- class Main{
- private $index;
- //構造方法,初始化數據
- public function __construct($index='')
- {
- $this->index=$index?$index:'';
- }
- //ui函數include相應的包含文件
- public function ui()
- {
- if(empty($this->index)
------解決思路----------------------
- !file_exists($this->index.'.inc'))
- {
- $this->index='start';
- }
- return $this->index.'.inc';
- }
- }
ps:php怎么創建文件?
php項目開發過程中,常常需要自動創建一些文件,如生成靜態html,生成php緩存文件,生成txt文件等等。下面就分享一下如何利用php程序創建文件,并向文件中寫入內容。
一個項目中,可能不止一次需要生成文件,因此我們可以定義一個函數,當需要創建文件時再來調用這個函數,即可。
步驟一、定義函數writefile,用于以寫的方式打開一個文件,文件不存在時自動創建,并向文件寫入內容,代碼如下。
- <?php
- function writefile($fname,$str){
- $fp=fopen($fname,"w");
- fputs($fp,$str);
- fclose($fp);
- }
- ?>
步驟二、函數的使用。如創建test.txt文件,并寫入內容“abc”,代碼如下:
- <?php
- $filename='test.txt';
- $str='abc';
- writefile($filename,$str);
- ?>
通過上述兩個步驟的操作,即可實現php創建文件的功能。
新聞熱點
疑難解答