Maison > Article > développement back-end > exemple de code de classe statique php
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['DOCUMENT_ROOT'] . $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['DOCUMENT_ROOT']; } else { $currentPath = $_SERVER['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']); } 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['DOCUMENT_ROOT'] . dirname($_SERVER['PHP_SELF']) . "/" . basename($_SERVER['PHP_SELF'],".php") . ($page==0 ? "" : "_" . strval($page)) . ".htm"); $shtml->Templet = $buffer; $shtml->Create(); return $buffer; } ?>
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!