小弟我觉得好迷糊
我觉得好迷糊啊
- PHP code
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><?phpclass cA{ /** * Test property for using direct default value */ protected static $item = 'Foo'; /** * Test property for using indirect default value */ protected static $other = 'cA'; public static function method() { print self::$item."\r\n"; // It prints 'Foo' on everyway... :( print self::$other."\r\n"; // We just think that, this one prints 'cA' only, but... :) } public static function setOther($val) { self::$other = $val; // Set a value in this scope. }}class cB extends cA{ /** * Test property with redefined default value */ protected static $item = 'Bar'; public static function setOther($val) { self::$other = $val; }}class cC extends cA{ /** * Test property with redefined default value */ protected static $item = 'Tango'; public static function method() { print self::$item."\r\n"; // It prints 'Foo' on everyway... :( print self::$other."\r\n"; // We just think that, this one prints 'cA' only, but... :) } /** * Now we drop redeclaring the setOther() method, use cA with 'self::' just for fun. */}class cD extends cA{ /** * Test property with redefined default value */ protected static $item = 'Foxtrot'; /** * Now we drop redeclaring all methods to complete this issue. */}cB::setOther('cB'); // It's cB::method()!cB::method(); // It's cA::method()!cC::setOther('cC'); // It's cA::method()!cC::method(); // It's cC::method()!cD::setOther('cD'); // It's cA::method()!cD::method(); // It's cA::method()!/** * Results: -> * Foo * cB * Tango * cC * Foo * cD * * What the hell?! :) */?>
这是覆盖,还是什么啊?为什么输出这样啊,不能理解啊,听乱的啊。
------解决方案--------------------
这叫什么呢?自找麻烦!
为累而累
------解决方案--------------------
不理解就算了,无所谓的事。
------解决方案--------------------
------解决方案--------------------
这样可能会清楚些
- PHP code
class cA{ /** * Test property for using direct default value * 使用直接默认值测试属性 */ protected static $item = 'Foo'; /** * Test property for using indirect default value * 使用间接默认值测试属性 */ protected static $other = 'cA'; public static function method() { print __METHOD__ . ' ' . __CLASS__ . '::$item=' . self::$item."\r\n"; print __METHOD__ . ' ' . __CLASS__ . '::$otfer=' . self::$other."\r\n"; } public static function setOther($val) { self::$other = $val; // Set a value in this scope. }}class cB extends cA{ /** * Test property with redefined default value * 重新定义了默认值测试属性 */ protected static $item = 'Bar'; public static function setOther($val) { self::$other = $val; }}class cC extends cA{ /** * Test property with redefined default value * 重新定义了默认值测试属性 */ protected static $item = 'Tango'; public static function method() { print __METHOD__ . ' ' . __CLASS__ . '::$item=' . self::$item."\r\n"; print __METHOD__ . ' ' . __CLASS__ . '::$otfer=' . self::$other."\r\n"; } /** * Now we drop redeclaring the setOther() method, use cA with 'self::' just for fun. */}class cD extends cA{ /** * Test property with redefined default value * 重新定义了默认值测试属性 */ protected static $item = 'Foxtrot'; /** * Now we drop redeclaring all methods to complete this issue. * 现在,我们放弃重新声明的所有方法来完成这个问题 */}cB::setOther('cB'); // It's cB::method()!cB::method(); // It's cA::method()!cC::setOther('cC'); // It's cA::method()!cC::method(); // It's cC::method()!cD::setOther('cD'); // It's cA::method()!cD::method(); // It's cA::method()!<div class="clear"> </div>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

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



Wenn Sie PHP für die Entwicklung von Webanwendungen verwenden, müssen Sie häufig eine Datenbank verwenden. Bei der Verwendung einer Datenbank kommt es sehr häufig zu Fehlermeldungen. Unter diesen ist PHPFatalerror: Calltoamemberfunctionfetch() ein relativ häufiger Fehler, der auftritt, wenn PDO zum Abfragen der Datenbank verwendet wird. Was verursacht diesen Fehler und wie kann er behoben werden? In diesem Artikel wird es Ihnen ausführlich erklärt. 1. Fehlerursache

php提交表单通过后,弹出的对话框怎样在当前页弹出php提交表单通过后,弹出的对话框怎样在当前页弹出而不是在空白页弹出?想实现这样的效果:而不是空白页弹出:------解决方案--------------------如果你的验证用PHP在后端,那么就用Ajax;仅供参考:HTML code

Die Rolle und Verwendung von Statik in der C-Sprache: 1. Variablenbereich; Wenn das Schlüsselwort static vor einer Variablen steht, ist der Gültigkeitsbereich der Variablen auf die Datei beschränkt, in der sie deklariert ist. Mit anderen Worten, die Variable ist ein „Gültigkeitsbereich auf Dateiebene“, was sehr nützlich ist, um das „ zu verhindern. Problem der doppelten Definition von Variablen; 2. Lebenszyklus, statische Variablen werden einmal initialisiert, wenn die Ausführung des Programms beginnt, und zerstört, wenn das Programm endet usw.

1. static Bitte schauen Sie sich zuerst das folgende Programm an: publicclassHello{publicstaticvoidmain(String[]args){//(1)System.out.println("Hello, world!");//(2)}} Habe das gesehen Segmentprogramme sind den meisten Leuten bekannt, die Java studiert haben. Auch wenn Sie kein Java, aber andere Hochsprachen wie C gelernt haben, sollten Sie die Bedeutung dieses Codes verstehen können. Es gibt lediglich „Hallo Welt“ aus und hat keine andere Verwendung. Es zeigt jedoch den Hauptzweck des statischen Schlüsselworts.

Praktische Anwendungsszenarien und Verwendungsfähigkeiten des Schlüsselworts static in der C-Sprache 1. Übersicht static ist ein Schlüsselwort in der C-Sprache, das zum Ändern von Variablen und Funktionen verwendet wird. Seine Funktion besteht darin, seinen Lebenszyklus und seine Sichtbarkeit während der Programmausführung zu ändern und Variablen und Funktionen statisch zu machen. In diesem Artikel werden die tatsächlichen Anwendungsszenarien und Verwendungstechniken des statischen Schlüsselworts vorgestellt und anhand spezifischer Codebeispiele veranschaulicht. 2. Statische Variablen verlängern den Lebenszyklus von Variablen. Die Verwendung des Schlüsselworts static zum Ändern lokaler Variablen kann deren Lebenszyklus verlängern.

Modifikator abstract (abstract) 1. Abstract kann eine Klasse ändern (1) Die durch abstract geänderte Klasse wird als abstrakte Klasse bezeichnet (2) Syntax: abstractclass-Klassenname {} (3) Funktionen: Abstrakte Klassen können keine Objekte separat erstellen, sie können jedoch (4) Abstrakte Klassen können Mitgliedsvariablen und Mitgliedsmethoden definieren. Wenn sie zum Erstellen von Unterklassenobjekten verwendet werden, erstellt jvm standardmäßig ein übergeordnetes Klassenobjekt apply Wird angewendet, wenn JVM ein übergeordnetes Klassenobjekt erstellt. 2. Abstrakt kann Methoden ändern (1) Die durch asbtract geänderte Methode wird als abstrakte Methode bezeichnet (2) Syntax: Zugriffsmodifikator abstrakter Rückgabewert

Nein, wir können Klassen der obersten Ebene nicht als privat oder geschützt deklarieren. Es kann öffentlich oder standardmäßig sein (keine Modifikatoren). Wenn keine Modifikatoren vorhanden sind, sollte ein Standardzugriff vorhanden sein. Syntax //Atoplevelclass publicclassTopLevelClassTest{ //Classbody} Wenn eine Top-Level-Klasse als privat deklariert ist, meldet der Compiler einen Fehler mit der Meldung „Der Modifikator private ist hier nicht zulässig.“ Dies bedeutet, dass Klassen der obersten Ebene nicht privat sein können, dasselbe gilt für geschützte Zugriffe

Die Funktionen von Static: 1. Methoden; 3. Andere Verwendungen; Optimierung des Speicherlayouts; 11. Vermeiden Sie wiederholte Initialisierung. 12. Verwendung in Funktionen. Detaillierte Einführung: 1. Variablen, statische Variablen. Wenn eine Variable als statisch deklariert wird, gehört sie zur Klassenebene und nicht zur Instanzebene. Dies bedeutet, dass unabhängig von der Anzahl der erstellten Objekte nur eine statische Variable und alle Objekte vorhanden sind Teilen Sie diese statischen Variablen usw.
