Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielcode für eine statische PHP-Klasse

Beispielcode für eine statische PHP-Klasse

怪我咯
怪我咯Original
2017-07-16 11:21:391775Durchsuche

In PHP werden die Verwendung des Schlüsselworts static zum Ändern von Mitgliedseigenschaften und Mitgliedsmethoden als statische Eigenschaften und statische Methoden bezeichnet. Statische Eigenschaften und statische Methoden können direkt verwendet werden, ohne dass die Klasse instanziiert wird.

Statische Eigenschaften

Im Gegensatz zu gewöhnlichen Mitgliedseigenschaften gehören statische Eigenschaften zur Klasse selbst und nicht zu einer Instanz der Klasse. Statische Eigenschaften können als globale Variablen betrachtet werden, die in einer Klasse gespeichert sind und auf die von überall über die Klasse zugegriffen werden kann.

Da statische Attribute nicht durch ein bestimmtes Objekt eingeschränkt sind, besteht keine Notwendigkeit, eine Klasseninstanz zu erstellen, sondern Sie können direkt auf die statischen Attribute in der Klasse verweisen. Das Syntaxformat ist wie folgt:


Klassenname::$statischer Eigenschaftsname


Unter ihnen ist das Symbol „::“. Der sogenannte Bereichsauflösungsoperator kann für den Zugriff auf statische Mitglieder, statische Methoden und Konstanten verwendet werden und kann auch zum Überschreiben von Mitgliedern und Methoden in einer Klasse verwendet werden.

Wenn Sie auf eine statische Eigenschaft in einer Mitgliedsmethode derselben Klasse zugreifen möchten, können Sie dies tun, indem Sie den Operator „self::“ vor dem Namen der statischen Eigenschaft hinzufügen.

Das Folgende ist der PHP-Beispielcode

<?php   
class Shtml   
 {   
 var $Templet;   
 var $DataSource;   
 var $Dir;   

 var $fileName;   
 var $mod;   
 var $handle;   

 function Shtml($fileName="")   
 {   
 $this->fileName=$fileName;   
 $this->mod="wb";   
 $this->handle=false;   

 $this->Templet = "";   
 $this->DataSource = array();   
 $this->Dir = "";   
 }   

 /// <描述>   
 /// 绑定数据源,参数为一数组。   
 /// </描述>   
 function BindData($arr)   
 {   
 $this->DataSource = $arr;   
 }   

 /// <描述>   
 /// 设置文件存放路径。   
 /// </描述>   
 function SetDir($dir)   
 {   
 $this->Dir = $dir;   
 }   
 function SetFileName($fileName)   
 {   
 return $this->fileName=$fileName;   
 }   

 function GetMod()   
 {   
 return $this->mod;   
 }   
 function SetMod($mod)   
 {   
 return $this->mod=$mod;   
 }   
 function Open()   
 {   
 if(substr($this->fileName,0,1)=="/")   
 $this->fileName = $_SERVER[&#39;DOCUMENT_ROOT&#39;] . $this->fileName;   
 if($this->handle=fopen($this->fileName, $this->mod))   
 return $this->handle;   
 else   
 return false;   
 }   
 function Close()   
 {   
 return fclose($this->handle);   
 }   
 function Write($content)   
 {   
 return fwrite($this->handle,$content);   
 }   
 function MkDir($pathname)   
 {   
 $currentPath="";   
 str_replace("\","/",$pathname);   
 $pathArr = split("/",$pathname);   
 if($pathArr[0] == "") //使用绝对路径   
 {   
 $currentPath = $_SERVER[&#39;DOCUMENT_ROOT&#39;];   
 }   
 else   
 {   
 $currentPath = $_SERVER[&#39;DOCUMENT_ROOT&#39;] . dirname($_SERVER[&#39;PHP_SELF&#39;]);   
 }   
 for($i=0; $i<count($pathArr); $i++)   
 {   
 if($pathArr[$i]=="")   
 continue;   
 else   
 if(is_dir($currentPath . "/" . $pathArr[$i]))   
 $currentPath = $currentPath . "/" . $pathArr[$i];   
 else   
 mkdir($currentPath = $currentPath . "/" . $pathArr[$i]);   
 }   
 }   

 /// <描述>   
 /// 生成静态文件。   
 /// </描述>   
 function Create()   
 {   
 $tmp = $this->Templet;   
 foreach($this->DataSource as $key=>$value)   
 {   
 $tmp = str_replace("<FIELD_" . $key . ">", $value, $tmp);   
 }   
 $this->MkDir(dirname($this->fileName));   
 $this->Open();   
 $this->Write($tmp);   
 $this->Close();   
 }   
 }   

 function CreateShtml()   
 {   
 ob_start("callback_CteateShtml");   
 }   
 function callback_CteateShtml($buffer)   
 {   
 $page = intval(@$_REQUEST["page"]);   
 $shtml = new Shtml();   
 $shtml->SetFileName($_SERVER[&#39;DOCUMENT_ROOT&#39;] . dirname($_SERVER[&#39;PHP_SELF&#39;]) . "/" . basename($_SERVER[&#39;PHP_SELF&#39;],".php") . ($page==0 ? "" : "_" . strval($page)) . ".htm");   
 $shtml->Templet = $buffer;   
 $shtml->Create();   
 return $buffer;   
 }   
?>

Das obige ist der detaillierte Inhalt vonBeispielcode für eine statische PHP-Klasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn