ArrayAccess erstellt ein Array-ähnliches Objekt
Nov 23, 2016 pm 01:38 PM/**
* Singleton-Modus-Implementierungsklasse -->ArrayAccess-Schnittstelle (Array-Zugriff)
*
* @author flyer0126
* @since 2012 /4 /27
*/
class Single{
private $name;
private static $_Instance = null;
private function __construct()
{
}
static function load()
{
if(null == self::$_Instance)
{
self::$_Instance = new Single();
}
return self::$_Instance;
}
public function setName($name)
{
$this->name = $name;
}
öffentliche Funktion getName()
{
return $this->name;
}
}
$s = Single::load();
$s->setName("jack");
echo $s->getName(); //jack
// 调整一下(继承ArrayAccess && 实现4个方法)
class Single implementiert ArrayAccess
{
private $name;
private static $_Instance = null;
private Funktion __construct()
{
}
static function load()
{
if(null == self::$_Instance)
{
self::$_Instance = new Single();
}
return self::$ _Instance;
}
public function setName($name)
{
$this->name = $name ;
}
öffentliche Funktion getName()
{
return $this->name;
}
/**
* Vier Methoden implementieren
* offsetExists(), wird verwendet, um zu identifizieren, ob ein Element definiert wurde
* offsetGet(), wird verwendet, um den Wert eines Elements zurückzugeben
* offsetSet(), wird verwendet, um einen neuen Wert für ein Element festzulegen
* offsetUnset(), wird verwendet, um ein Element und den entsprechenden Wert zu löschen
**/
öffentliche Funktion offsetSet($offset, $value)
{
if (is_null($offset))
{
$this->container[] = $value;
}
else
{
$this->container[$offset] = $value;
}
}
öffentliche Funktion offsetGet($offset)
{
return isset($this->container[$offset]) ? $this->container[$offset] : null;
}
öffentliche Funktion offsetExists($offset)
{
return isset($this->container[$offset]);
}
public function offsetUnset($offset)
{
unset($this->container[$offset]);
}
}
$s = Single::load();
$s->setName("jack");
$s ["name"] = "mike";
echo $s->getName(); //jack
echo $s["name"]; //mike
print_r($s);
/**
Einzelnes Objekt
(
[name:Single:private] => jack
[container] => Array
(
[name] => mike
)
)
**/

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein
