exemple de code de classe statique php

怪我咯
Libérer: 2023-03-14 07:22:01
original
1845 Les gens l'ont consulté

En PHP, l'utilisation du mot-clé static pour modifier les propriétés des membres et les méthodes membres sont appelées propriétés statiques et méthodes statiques. Les propriétés statiques et les méthodes statiques peuvent être utilisées directement sans que la classe soit instanciée.

Propriétés statiques

Contrairement aux propriétés de membre ordinaires, les propriétés statiques appartiennent à la classe elle-même et non à une instance de la classe. Les propriétés statiques peuvent être considérées comme des variables globales stockées dans une classe, et elles sont accessibles de n'importe où via la classe.

Étant donné que les attributs statiques ne sont limités par aucun objet spécifique, il n'est pas nécessaire de créer une instance de classe, mais vous pouvez directement référencer les attributs statiques dans la classe. Le format de syntaxe est le suivant :


Class name::$static property name


Parmi eux, le symbole "::" est appelé opérateur de résolution de plage , qui peut être utilisé pour accéder aux membres statiques, aux méthodes statiques et aux constantes, et peut également être utilisé pour remplacer les membres et les méthodes d'une classe.

Si vous souhaitez accéder à une propriété statique dans une méthode membre de la même classe, vous pouvez le faire en ajoutant l'opérateur "self::" avant le nom de la propriété statique.

Ce qui suit est l'exemple de code PHP

<?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;   
 }   
?>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!