PHP新建類(lèi)問(wèn)題分析及解決思路
下面先給大家分析php新建類(lèi)的問(wèn)題
index.php文件
function __autoload($_className) {
require $_className.'.class.php';
}
//新建類(lèi)??
if (isset($_GET['index'])) {
$m=new Main($_GET['index']);
}else{
$m=new Main();
}
include $m->ui();
main.class.php文件
class Main{ private $index; //構(gòu)造方法,初始化數(shù)據(jù) public function __construct($index=''){ $this->index=$index; } //ui函數(shù)include相應(yīng)的包含文件 public function ui(){ if(empty($this->index)||!file_exists($this->index.'.inc')){ $this->index='start'; } return $this->index.'.inc'; } }
紅字的部分有啥意義了:類(lèi)中構(gòu)造函數(shù)傳參值已設(shè)默認(rèn)是空(public function __construct($index='')),為啥不能直接寫(xiě)$m=new Main($_GET['index']);。如果不想在index做紅字的if判斷,類(lèi)里需要怎么寫(xiě)了。謝謝,不是太理解
------解決思路----------------------
if (isset($_GET['index'])) { $m=new Main($_GET['index']); //如果 $_GET['index'] 存在則將 $_GET['index'] 作為參數(shù) }else{ $m=new Main(); //否則使用默認(rèn)參數(shù) }
直接使用 $_GET['index'] 將可能引發(fā) NOTICE 級(jí)別錯(cuò)誤
不加區(qū)別的使用傳入數(shù)據(jù),可能引發(fā)安全問(wèn)題
------解決思路----------------------
稍微改了一下你看咋樣。
<?php class Main{ private $index; //構(gòu)造方法,初始化數(shù)據(jù) public function __construct($index='') { $this->index=$index?$index:''; } //ui函數(shù)include相應(yīng)的包含文件 public function ui() { if(empty($this->index)
------解決思路----------------------
!file_exists($this->index.'.inc')) { $this->index='start'; } return $this->index.'.inc'; } }
ps:php怎么創(chuàng)建文件?
php項(xiàng)目開(kāi)發(fā)過(guò)程中,常常需要自動(dòng)創(chuàng)建一些文件,如生成靜態(tài)html,生成php緩存文件,生成txt文件等等。下面就分享一下如何利用php程序創(chuàng)建文件,并向文件中寫(xiě)入內(nèi)容。
一個(gè)項(xiàng)目中,可能不止一次需要生成文件,因此我們可以定義一個(gè)函數(shù),當(dāng)需要?jiǎng)?chuàng)建文件時(shí)再來(lái)調(diào)用這個(gè)函數(shù),即可。
步驟一、定義函數(shù)writefile,用于以寫(xiě)的方式打開(kāi)一個(gè)文件,文件不存在時(shí)自動(dòng)創(chuàng)建,并向文件寫(xiě)入內(nèi)容,代碼如下。
<?php function writefile($fname,$str){ $fp=fopen($fname,"w"); fputs($fp,$str); fclose($fp); } ?>
步驟二、函數(shù)的使用。如創(chuàng)建test.txt文件,并寫(xiě)入內(nèi)容“abc”,代碼如下:
<?php $filename='test.txt'; $str='abc'; writefile($filename,$str); ?>
通過(guò)上述兩個(gè)步驟的操作,即可實(shí)現(xiàn)php創(chuàng)建文件的功能。
- PHP 將圖片按創(chuàng)建時(shí)間進(jìn)行分類(lèi)存儲(chǔ)的實(shí)現(xiàn)代碼
- php新建文件自動(dòng)編號(hào)的思路與實(shí)現(xiàn)
- PHP操作文件類(lèi)的函數(shù)代碼(文件和文件夾創(chuàng)建,復(fù)制,移動(dòng)和刪除)
- PHP FTP操作類(lèi)代碼( 上傳、拷貝、移動(dòng)、刪除文件/創(chuàng)建目錄)
- 一個(gè)ASP創(chuàng)建動(dòng)態(tài)對(duì)象的工廠類(lèi)(類(lèi)似PHP的stdClass)
- PHP下通過(guò)QRCode類(lèi)庫(kù)創(chuàng)建中間帶網(wǎng)站LOGO的二維碼
相關(guān)文章
destoon后臺(tái)網(wǎng)站設(shè)置變成空白的解決方法
這篇文章主要介紹了destoon后臺(tái)網(wǎng)站設(shè)置變成空白的解決方法,需要的朋友可以參考下2014-06-06PHP網(wǎng)頁(yè)游戲?qū)W習(xí)之Xnova(ogame)源碼解讀(八)
這篇文章主要介紹了PHP網(wǎng)頁(yè)游戲Xnova(ogame)源碼解讀的公共函數(shù)部分,需要的朋友可以參考下2014-06-06PHP實(shí)現(xiàn)163郵箱自動(dòng)發(fā)送郵件
163郵箱實(shí)用性非常高。那么基于php如何實(shí)現(xiàn)163郵箱自動(dòng)發(fā)送郵件功能呢,下面腳本之家小編給大家分享具體實(shí)現(xiàn)代碼2016-03-03微信公眾平臺(tái)開(kāi)發(fā)實(shí)現(xiàn)2048游戲的方法
這篇文章主要介紹了微信公眾平臺(tái)開(kāi)發(fā)實(shí)現(xiàn)2048游戲的方法,較為詳細(xì)的講述的2048游戲的原理以及微信公眾平臺(tái)開(kāi)發(fā)2048游戲的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04淺談php使用curl模擬多線程發(fā)送請(qǐng)求
這篇文章主要介紹了php使用curl模擬多線程發(fā)送請(qǐng)求,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Laravel中獲取路由參數(shù)Route Parameters的五種方法示例
這篇文章主要給大家介紹了關(guān)于Laravel中獲取路由參數(shù)Route Parameters的五種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Laravel具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-09-09