Home >Backend Development >PHP Tutorial >php static class example code

php static class example code

怪我咯
怪我咯Original
2017-07-16 11:21:391866browse

In PHP, use the keyword static to modify member properties and Member methods are called static properties and static methods. Static properties and static methods can be used directly without the class being instantiated.

Static properties

Unlike ordinary member properties, static properties belong to the class itself and not to any instance of the class. Static properties can be thought of as global variables stored in a class, and they can be accessed from anywhere through the class.

Since static properties are not restricted by any specific object, there is no need to create a class instance, but you can directly reference the static properties in the class. The syntax format is as follows:


Class name::$static property name


Among them, the symbol "::" is called the range resolution operator , it can be used to access static members, static methods and constants, and can also be used to override members and methods in a class.

If you want to access a static property in a member method of the same class, you can do so by adding the operator "self::" before the name of the static property.

The following is the PHP sample code

<?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;   
 }   
?>

The above is the detailed content of php static class example code. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn