PHP建立類問題分析及解決思路_php執行個體

來源:互聯網
上載者:User

下面先給大家分析php建立類的問題

index.php檔案

function __autoload($_className) {require $_className.'.class.php';}//建立類??if (isset($_GET['index'])) {$m=new Main($_GET['index']);}else{$m=new Main();}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 層級錯誤

不加區別的使用傳入資料,可能引發安全問題

------解決思路----------------------

稍微改了一下你看咋樣。

<?phpclass 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,用於以寫的方式開啟一個檔案,檔案不存在時自動建立,並向檔案寫入內容,代碼如下。

<?phpfunction 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建立檔案的功能。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.