Heim > Artikel > Backend-Entwicklung > Ausführliche Erläuterung von Anwendungsbeispielen für PHP-Namespaces und automatische Ladeklassen
Dieser Artikel führt hauptsächlich den PHP-objektorientiertenNamespace und automatisch geladene Klassen in die Programmierung ein und analysiert den PHP-Namespace und das automatische Laden in Form von Beispiele. Das Konzept, die Funktion, die Verwendung und die zugehörigen Hinweise von Ladeklassen, Freunde in Not können sich darauf beziehen
Dieser Artikel beschreibt den Namespace und die automatischen Ladeklassen der objektorientierten PHP-Programmierung Beispiele. Geben Sie es wie folgt als Referenz an alle weiter:
Namespace
, um doppelte Klassennamen und Fehler zu vermeiden.
<?php require_once "useful/Outputter.php"; class Outputter { // output data private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } $obj = new Outputter(); // 同一命名空间下,类名不能相同,默认命名空间为空。空也是一种命名空间。 $obj -> setName("Jack"); print $obj->getName(); //namespace useful; // 更改命名空间,否则查询不到Hello类,Fatal error: Class 'my\Hello' not found $hello = new Hello(); ?> <?php // useful/Outputter.php namespace useful; // 命名空间 class Outputter { // } class Hello { } ?>
So rufen Sie eine Klasse im Namespace auf
<?php namespace com\getinstance\util; class Debug { static function helloWorld() { print "hello from Debug\n"; } } namespace main; // com\getinstance\util\Debug::helloWorld(); // 找不到Debug类 \com\getinstance\util\Debug::helloWorld(); // 加斜杠之后,就从根部去寻找了。 // outPut:hello from Debug ?>
Verwenden Sie das Schlüsselwort use
<?php namespace com\getinstance\util; class Debug { static function helloWorld() { print "hello from Debug\n"; } } namespace main; use com\getinstance\util; //Debug::helloWorld(); //Fatal error: Class 'main\Debug' not found util\Debug::helloWorld(); ?>
Mit der folgenden Verarbeitung können Sie die Klasse
<?php namespace com\getinstance\util; class Debug { static function helloWorld() { print "hello from Debug\n"; } } namespace main; use com\getinstance\util\Debug; // 直接使用到类 Debug::helloWorld(); ?>
direkt aufrufen, um die globale
global.php
<?php // no namespace class Lister { public static function helloWorld() { print "hello from global\n"; } } ?> <?php namespace com\getinstance\util; require_once 'global.php'; class Lister { public static function helloWorld() { print "hello from ".NAMESPACE."\n"; // NAMESPACE当前namespace } } Lister::helloWorld(); // access local \Lister::helloWorld(); // access global ?>Ausgabe: Hallo von comgeinstanceutil
Hallo vom globalen
Namespace plus {}
<?php namespace com\getinstance\util { class Debug { static function helloWorld() { print "hello from Debug\n"; } } } namespace main { \com\getinstance\util\Debug::helloWorld(); } ?>Ausgabe:Hallo von Debug
Globaler Namespace
<?php namespace { // 全局空间 class Lister { public static function helloWorld() { print "hello from global\n"; } } } namespace com\getinstance\util { class Lister { public static function helloWorld() { print "hello from ".NAMESPACE."\n"; } } Lister::helloWorld(); // access local \Lister::helloWorld(); // access global } ?>
Autoload-Autoload-Klasse
ShopProduct.php<?php class ShopProduct { function construct() { print "ShopProduct constructor\n"; } } ?> <?php function autoload( $classname ) { // 自动加载,根据类名加载类 include_once( "$classname.php" ); } $product = new ShopProduct( 'The Darkening', 'Harry', 'Hunter', 12.99 ); ?>Ausgabe:ShopProduct-Konstruktor
Weitere Optimierungsverarbeitung
befindet sich im Ordner business/ShopProduct.php<?php class business_ShopProduct { // 这里的类命名就要遵循规则了 function construct() { print "business_ShopProduct constructor\n"; } } ?> <?php function autoload( $classname ) { $path = str_replace('_', DIRECTORY_SEPARATOR, $classname ); // 智能化处理 require_once( "$path.php" ); } $x = new ShopProduct(); $y = new business_ShopProduct(); ?>Ausgabe:ShopProduct-Konstruktor
business_ShopProduct-Konstruktor
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Anwendungsbeispielen für PHP-Namespaces und automatische Ladeklassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!