程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP新建類問題分析及解決思路

PHP新建類問題分析及解決思路

編輯:PHP綜合

下面先給大家分析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 級別錯誤

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

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

稍微改了一下你看咋樣。

<?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創建文件的功能。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved