


Drupal 8 -Module - Konfigurationsverwaltung und Servicecontainer
Feb 21, 2025 am 10:17 AM
Kernpunkte
-
Die
- Drupal 8 -Klasse
ConfigFormBase
bietet zus?tzliche Funktionen für die Interaktion mit dem Konfigurationssystem, sodass Tools Formulare in gespeicherte Werte konvertieren k?nnen. Dies kann durch Ersetzen der Erweiterungsklasse durchConfigFormBase
ersetzt und die erforderlichen ?nderungen im Formular vorgenommen werden. Die Konfiguration in Drupal 8 wird in einer YAML -Datei gespeichert und kann über die Benutzeroberfl?che für die Bereitstellung über verschiedene Websites hinweg ge?ndert werden. - Der Service -Container in Drupal 8 erm?glicht die Erstellung eines Dienstes, dh eine PHP -Klasse, die globale Operationen ausführt, und registriert ihn in den Service -Container für den Zugriff. Die Abh?ngigkeitsinjektion wird verwendet, um Objekte an andere Objekte weiterzugeben, um die Entkopplung zu gew?hrleisten. Sie k?nnen einen Dienst registrieren, indem Sie eine
demo.services.yml
-Datei im Stammverzeichnis des Moduls erstellen. - Abh?ngigkeitsinjektion in Drupal 8 ist ein Entwurfsmuster, mit dem ein Objekt Abh?ngigkeiten für ein anderes bereitstellt, wodurch der Code modularer und einfacher zu testen wird. Dies kann erreicht werden, indem die
ControllerBase
-Klassungen erweitert oder dieContainerInjectionInterface
implementiert werden. Sie k?nnen auch dieDrupal
-Klasse verwenden, um auf den Dienst weltweit zugreifen zu k?nnen.
Beachten Sie, dass einige Code -Teile m?glicherweise veraltet sein, da Drupal 8 zum Zeitpunkt des Schreibens in der Entwicklung ist. Bitte schauen Sie sich dieses Repository an. Ich habe versucht, den Beispielcode zu aktualisieren und ihn mit der neuesten Drupal 8 -Version kompatibel zu machen.
In früheren Artikeln zur Entwicklung von Drupal 8 -Modul haben wir uns mit der Erstellung von Blocktypen und -formen befasst. Wir haben gesehen, dass Bl?cke jetzt wiederverwendbar sind und dass alles, was zum Definieren von Blocktypen erforderlich ist, in einer Klasse durchgeführt wird. In ?hnlicher Weise werden auch Funktionen für die Erzeugungsgenerierung in einer Klasse gruppiert, in der die von einer bestimmten Methode ausgeführten Aufgaben denen ?hnlich sind, an die wir in Drupal 7 gewohnt sind.
In diesem Tutorial werde ich weiterhin von dem, wo wir das letzte Mal beendet haben, fortfahren. Ich werde erkl?ren, wie Sie unser DemoForm
in ein Formular umwandeln, mit dem Werte über das Drupal 8 -Konfigurationssystem gespeichert werden. Danach veranschaulichen wir die Servicebeh?lter und die Abh?ngigkeitsinjektion mit Beispielen.
Vergessen Sie nicht, wenn Sie den gesamten Code in dieser Tutorial -Serie geschrieben haben m?chten, k?nnen Sie sich dieses Repository ansehen.
Konfigurationsformular
Als wir DemoForm
zum ersten Mal definiert haben, erweiterten wir die FormBase
-Klasse, die die einfachste Implementierung von FormInterface
ist. Drupal 8 wird jedoch auch mit einem ConfigFormBase
ausgestattet, das einige zus?tzliche Funktionen bietet, die das Interaktion mit dem Konfigurationssystem sehr einfach machen.
Was wir jetzt tun müssen, ist DemoForm
in ein Formular umzuwandeln, das die vom Benutzer eingegebene E -Mail -Adresse speichert. Das erste, was wir tun sollten, ist die Erweiterungsklasse durch ConfigFormBase
(und natürlich use
it):
use Drupal\Core\Form\ConfigFormBase; class DemoForm extends ConfigFormBase {
Bevor wir den Rest des Formulars weiter ?ndern, schauen wir uns an, wie einfache Konfigurationen in Drupal 8 funktionieren. Ich sagte "einfach", weil es komplexere Konfigurationseinheiten gibt, die wir heute nicht vorstellen werden. Derzeit wird die vom Modul bereitgestellte Konfiguration (Kern oder Beitrag) in der YAML -Datei gespeichert. Wenn das Modul aktiviert ist, werden diese Daten in die Datenbank importiert (um die Leistung bei der Verwendung zu verbessern). Mit der Benutzeroberfl?che k?nnen wir diese Konfiguration ?ndern und sie dann einfach in eine YAML -Datei für die Bereitstellung über verschiedene Websites exportieren.
Das -Modul kann eine Standardkonfiguration in der YAML -Datei im Ordner config/install
im Modul -Root -Verzeichnis bereitstellen. Die Namenskonvention für diese Datei besteht darin, den Namen des Moduls zu pr?fixen. Erstellen wir also eine Datei namens demo.settings.yml
. Lassen Sie uns in dieser Datei Folgendes einfügen:
demo: email_address: demo@demo.com
Dies ist eine verschachtelte Struktur (wie ein assoziatives Array in PHP). Unter der Taste demo
haben wir ein weiteres Schlüsselwertpaar. Um auf diese verschachtelten Werte zuzugreifen, verwenden wir in der Regel Punkte (.). In unserem Fall ist es demo.email_address
.
Sobald wir diese Datei haben, müssen Sie sich daran erinnern, dass diese Datei nur dann importiert wird, wenn das Modul installiert ist. Also bringe es wieder neu. Jetzt k?nnen wir zu unserem Form zurückkehren und nacheinander die Methoden sehen, die angepasst werden müssen.
so sieht die buildForm()
-Methode jetzt aus:
public function buildForm(array $form, array &$form_state) { $form = parent::buildForm($form, $form_state); $config = $this->config('demo.settings'); $form['email'] = array( '#type' => 'email', '#title' => $this->t('Your .com email address.'), '#default_value' => $config->get('demo.email_address') ); return $form; }
im Gegensatz zu FormBase
im Gegensatz zu ConfigFormBase
implementiert die
Config
jetzt für den Konfigurationsabschnitt. Drupal 8 liefert ein ConfigFormBase
-Objekt, mit dem wir mit der Konfiguration interagieren k?nnen. Einige Klassen haben es durch Abh?ngigkeitsinjektion erhalten.
config()
Wie Sie sehen, verwenden wir die Config
-Methode der übergeordneten Klasse, um ein demo.settings
-Objekt abzurufen, das mit unserer #default_value
einfachen Konfiguration besiedelt wurde. Für das Config
des E -Mail -Formularelements verwenden wir dann die get()
-Methode des
validateForm()
Als n?chstes müssen wir nur den Commit -Handler ?ndern, da die
public function submitForm(array &$form, array &$form_state) { $config = $this->config('demo.settings'); $config->set('demo.email_address', $form_state['values']['email']); $config->save(); return parent::submitForm($form, $form_state); }
Config
In dieser Methode rufen wir zun?chst das von uns konfigurierte set()
-Objekt ab (wie wir zuvor). Anschlie?end verwenden wir seine email_address
-Methode, um den Wert von save()
in den von Benutzer eingereichten Wert zu ?ndern. Dann verwenden wir die
Das war's. Sie k?nnen den Cache l?schen und es versuchen. Durch das Senden einer neuen E -Mail -Adresse speichern Sie sie in der Konfiguration. Die demo.settings.yml
-Datei ?ndert sich sicherlich nicht, aber Sie k?nnen die Konfiguration demo.settings
auf eine andere Site importieren.
Service Container und Abh?ngigkeitsinjektion
Das n?chste, was wir uns ansehen m?chten, ist der Service -Container. Die Philosophie hinter dem Dienst besteht darin, die Funktionalit?t in wiederverwendbare Komponenten aufzuteilen. Daher ist ein Dienst eine PHP -Klasse, die einige globale Operationen und Register für den Zugang zum Servicecontainer ausführt.
Abh?ngigkeitsinjektion ist die Art und Weise, wie wir Objekte übergeben, um die Entkopplung sicherzustellen. Jeder Service muss eine Sache erledigen, und wenn er einen anderen Service ben?tigt, kann letzteres in die ersteren injiziert werden. Aber wir werden sehen, wie es sofort geht.
Als n?chstes erstellen wir einen sehr einfachen Dienst und registrieren ihn in den Container. Es hat nur einen echten Weg, um einfache Werte zurückzugeben. Anschlie?end injizieren wir den Dienst als Abh?ngigkeit in unseren DemoController
und verwenden den vom Dienst bereitgestellten Wert.
Um einen Dienst zu registrieren, müssen wir eine demo.services.yml
-Datei erstellen, die sich im Stammverzeichnis des Moduls befindet, mit dem folgenden Inhalt:
use Drupal\Core\Form\ConfigFormBase; class DemoForm extends ConfigFormBase {
Die Datei -Benennungskonvention lautet module_name.services.yml
.
Die erste Zeile erstellt eine Reihe von Diensten. Die zweite Zeile definiert den ersten Dienst (genannt demo_service
, der vom Modulnamen vorangestellt wurde). Die dritte Zeile gibt die Klasse an, die für diesen Service instanziiert wird. Als n?chstes erstellen Sie die src/
Klassendatei im Ordner DemoService.php
unseres Moduls. Dies ist, was mein Dienst tut (eigentlich nichts, nur um zu veranschaulichen, wie man ihn benutzt):
demo: email_address: demo@demo.com
Hier muss nichts erkl?rt werden, da es sehr einfach ist. Wenden wir uns als n?chstes an unseren DemoController
und nutzen Sie diesen Dienst. Wir k?nnen dies auf zwei Arten tun: Zugriff auf den Container weltweit über die Drupal
-Klasse oder über ein Objekt dieser Klasse an unseren Controller weitergeben. Best Practice deuten darauf hin, dass wir den zweiten Ansatz verfolgen sollten, also werden wir das tun. Aber manchmal ben?tigen Sie einen globalen Zugang zum Service. Dazu k?nnen Sie Folgendes tun:
public function buildForm(array $form, array &$form_state) { $form = parent::buildForm($form, $form_state); $config = $this->config('demo.settings'); $form['email'] = array( '#type' => 'email', '#title' => $this->t('Your .com email address.'), '#default_value' => $config->get('demo.email_address') ); return $form; }
jetzt $service
ist das Objekt der gerade erstellten DemoService
-Klasses. Aber lassen Sie uns sehen, wie wir unseren Dienst als Abh?ngigkeit in der DemoController
-Klasse injizieren k?nnen. Ich werde erkl?ren, was zuerst erledigt werden muss, und dann werden Sie einen vollst?ndigen Controller mit all den ?nderungen sehen.
Erstens müssen wir auf den Service -Container zugreifen. Dies ist für den Controller sehr einfach. Wir k?nnen die ControllerBase
-Klasse erweitern, die uns zus?tzlich zu einigen anderen Helferprogrammen vermittelt. Alternativ kann unser Controller ContainerInjectionInterface
implementieren, wodurch wir auch auf den Container zugreifen k?nnen. Aber wir werden uns an ControllerBase
halten, also brauchen wir use
die Klasse.
Als n?chstes ben?tigen wir use
Symfony 2 ContainerInterface
als Voraussetzung für die create()
-Methode, die ein anderes Objekt des Controllers instanziiert und den gewünschten Dienst übergibt.
Schlie?lich ben?tigen wir einen Konstruktor, um die übergebenen Serviceobjekte (das zurückgegebene Objekt von create()
) zu erhalten und sie den Eigenschaften für die sp?tere Verwendung zuzuweisen. create()
Die Reihenfolge, in der die Methode Objekte zurückgibt, muss die Reihenfolge widerspiegeln, in der sie an den Konstruktor übergeben werden.
Schauen wir uns also unsere modifizierte DemoController
:
use Drupal\Core\Form\ConfigFormBase; class DemoForm extends ConfigFormBase {
Wie Sie sehen k?nnen, sind alle Schritte hier. Die create()
-Methode erstellt eine neue Instanz unserer Controller -Klasse und übergibt den vom Container abgerufenen Dienst an ihn. Schlie?lich wird eine Instanz der DemoService
-Klasse in der Eigenschaft $demoService
gespeichert, mit der wir seine getDemoValue()
-Methode aufrufen k?nnen. Dieser Wert wird dann in der "Hello" -Meldung verwendet. L?schen Sie den Cache und probieren Sie es aus. Gehen Sie zum demo/
Pfad und Sie sollten den "Hallo uppchuk" auf der Seite sehen.
Ich glaube, Sie k?nnen die Kraft des Service -Containers sehen, da wir jetzt entkoppelte Funktionen schreiben und sie bei Bedarf übergeben k?nnen. Ich zeige Ihnen nicht, wie es geht, aber Sie k?nnen bei der Registrierung für einen Dienst Abh?ngigkeiten deklarieren. Dies bedeutet, dass bei Drupal ein Serviceobjekt für alle seine Abh?ngigkeiten erledigt und an seinen Konstruktor weitergegeben wird. Weitere Informationen zu dieser Dokumentseite finden Sie mehr darüber.
Schlussfolgerung
In diesem Artikel haben wir uns viele coole Sachen angesehen. Wir haben gesehen, wie das Konfigurationssystem einfache Konfigurationen verwaltet und welche "Form" -Funktionen dafür bereitgestellt werden. Ich ermutige Sie, zu untersuchen, wie ConfigFormBase
implementiert ist und welche Funktionen bei der Erweiterung verfügbar sind. Darüber hinaus sollten Sie die Verwendung von Import-/Exportkonfigurationen zwischen Websites in der Benutzeroberfl?che üben. Von nun an wird dies eine gro?e Verbesserung des Einsatzprozesses sein.
Wir haben uns dann die Dienste angesehen, was sie sind und wie sie funktionieren. Eine gute M?glichkeit, wiederverwendbare und entkoppelte Funktionsbl?cke aufrechtzuerhalten, die von überall zug?nglich sind. Ich hoffe, das Konzept der Abh?ngigkeitsinjektion ist nicht mehr so ??be?ngstigend (wenn es für Sie ist). Es ist im Grunde dasselbe wie die übergabe von Parametern an prozedurale Funktionen, wird jedoch hinter den Kulissen von Symfony und seinen leistungsstarken Servicecontainern mit Konstruktormethoden (oder Setzen) durchgeführt.
h?ufig gestellte Fragen zum Erstellen von Drupal 8 Modulen: Konfigurationsverwaltungs- und Service -Container
Welche Rolle spielt die Dienstleistungscontainer in Drupal 8?
Der Service -Container in Drupal 8 ist eine Schlüsselkomponente, die die Erstellung von Diensten verwaltet, Objekte, die weltweit in Drupal -Anwendungen verwendet werden. Es stellt sicher, dass jeder Dienst nur einmal instanziiert wird, was Speicher speichert und die Leistung verbessert. Der Service -Container behandelt auch die Abh?ngigkeitsinjektion, ein Entwurfsmuster, mit dem ein Objekt Abh?ngigkeiten für ein anderes Objekt bereitstellt. Dies macht den Code modularer, einfacher zu testen und f?rdert eine bessere Organisation.
Wie kann man einen neuen Dienst in Drupal 8 definieren?
Um einen neuen Dienst in Drupal 8 zu definieren, müssen Sie im Stammverzeichnis des Moduls eine services.yml
Datei erstellen. Diese Datei sollte den Namen, die Klasse und die Parameter des Dienstes enthalten. Diese Klasse sollte der vollst?ndig qualifizierte Name der Klasse sein, der den Dienst implementiert, und die Parameter sollten jeder Dienst oder Parameter sein, von dem der Dienst abh?ngt.
Was ist der Zweck der Konfigurationsverwaltung in Drupal 8?
Konfigurationsverwaltung in Drupal 8 ist ein System, mit dem Sie die Konfigurationsdaten auf konsistent verwalten k?nnen. Sie k?nnen Konfigurationsdaten importieren, exportieren und synchronisieren. Es bietet auch eine M?glichkeit, ?nderungen der Site -Konfiguration im Laufe der Zeit zu verfolgen und zu verwalten.
Wie exportieren und importieren Sie Konfigurationsdaten mithilfe des Konfigurationsverwaltungssystems?
Um Konfigurationsdaten in Drupal 8 zu exportieren, k?nnen Sie die Konfigurationsverwaltungsschnittstelle im Administratorbereich verwenden oder den Befehl drush verwenden. Die exportierten Daten werden im YAML -Format angezeigt und k?nnen leicht gelesen und bearbeitet werden. Um Konfigurationsdaten zu importieren, k?nnen Sie die exportierte YAML -Datei über die Konfigurationsverwaltungsschnittstelle hochladen oder den Befehl drush verwenden. Denken Sie daran, Ihre Website zu sichern, bevor Sie Konfigurationsdaten importieren, um potenzielle Datenverluste zu verhindern.
Was ist Abh?ngigkeitsinjektion und warum ist es in Drupal 8 wichtig?
Abh?ngigkeitsinjektion ist ein Entwurfsmuster, mit dem ein Objekt Abh?ngigkeiten für ein anderes Objekt bereitstellt. In Drupal 8 wird es verwendet, um Dienste und Controller modularer und einfacher zu testen. Anstatt Abh?ngigkeiten in einem Objekt zu erstellen, werden sie über eine Konstruktor- oder Settermethode übergeben (injiziert). Dies erleichtert den Code, flexibler und weniger gekoppelt zu testen.
Wie kann ich meinen Drupal 8 -Service Abh?ngigkeiten injizieren?
Um Abh?ngigkeiten in Dienste in Drupal 8 injizieren zu k?nnen, müssen Sie sie in der Definition von Diensten in der services.yml
-Datei definieren. Die Abh?ngigkeiten sollten unter dem Schlüssel arguments
aufgeführt werden. Wenn ein Dienst erstellt wird, übergibt der Dienstcontainer diese Abh?ngigkeiten automatisch an den Konstruktor des Dienstes.
Was ist der Unterschied zwischen Diensten und Plug-Ins in Drupal 8?
In Drupal 8 ist ein Dienst ein Objekt, das globale Aufgaben in einer Anwendung ausführt, w?hrend ein Plug-In ein Objekt ist, das bestimmte Aufgaben auf Stecker ausführt. Dienste werden in der Datei services.yml
definiert und vom Service-Container verwaltet, w?hrend Plug-Ins vom Plug-in-Manager entdeckt und instanziiert werden.
Wie kann ich Dienste in Drupal 8 au?er Kraft setzen?
Um einen Dienst in Drupal 8 zu überschreiben, müssen Sie einen Dienst mit demselben Namen wie der Dienst definieren, den Sie in der Datei services.yml
des Moduls überschreiben m?chten. Ihr neuer Service sollte die Klasse des ursprünglichen Dienstes erweitern und die Methode, die Sie ?ndern m?chten, überschreiben.
So verwenden Sie das Konfigurationsverwaltungssystem, um ?nderungen in der Site -Konfiguration zu verfolgen?
Das Konfigurationsverwaltungssystem in Drupal 8 bietet eine M?glichkeit, die Konfigurations?nderungen von Site über ein Konfigurations -Snapshot -System zu verfolgen. Dieses System hat eine Momentaufnahme der aktiven Konfiguration der Website, wenn Sie Konfigurationsdaten importieren oder synchronisieren. Sie k?nnen diese Schnappschüsse dann vergleichen, um zu sehen, welche ?nderungen vorgenommen wurden.
services.yml
Was macht eine Datei in Drupal 8?
Die Datei services.yml
in Drupal 8 ist der Ort, an dem Moduldienste definiert werden. Jeder Dienst wird unter Verwendung eines eindeutigen Namens, eines voll qualifizierten Namens der Klasse definiert, der den Dienst implementiert, und von Dienst oder Parametern, von denen der Dienst abh?ngt. services.yml
Dateien werden vom Service -Container gelesen und der Service -Container verwaltet die Erstellung und Injektion des Dienstes.
Das obige ist der detaillierte Inhalt vonDrupal 8 -Module - Konfigurationsverwaltung und Servicecontainer. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

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

ToversionAPHP-basiertApieffektiv, useUrl-basiertversionsforclarityAndaseFrouting, separateversionedCodetoAvoidConflicts, DeprecateoldversionswithClearcommunication, und considercustomheadsonlywaNno.

TosecurelyHandleAuthenticationAuthorizationInphp, folge theSteps: 1.Alwayshashpasswordswithpassword_hash () und password_verify (), usePreeParedStatementStopreventsQlinjapitca und StoreuserDatain $ _SessionArtelogin.2.ImplementscaChescescesc

ProzeduralandObject-orientedProgramming (OOP) inPhpdifferS sisideftribitionInstructure, Wiederverwendbarkeit und datahandling.1.ProceduralProgrammingusSfunctions-organisierte Folgesequentiell, optableForsmallscripts.

Phpdoesnothaveabuilt-inWeakmapbutoffersWeakreferenceForsimilarFunction.1.WeakreferenceAllowsholdingReferences WithoutPreventingGAGECollection

Um Datei -Uploads in PHP sicher zu verarbeiten, besteht der Kern darin, Dateitypen zu überprüfen, Dateien umzubenennen und die Berechtigungen zu beschr?nken. 1. Verwenden Sie Finfo_File (), um den realen MIME -Typ zu überprüfen, und nur bestimmte Typen wie Bild/JPEG sind zul?ssig. 2. Verwenden Sie Uniqid (), um zuf?llige Dateinamen zu generieren und sie im Root-Verzeichnis ohne Web zu speichern. 3.. Begrenzen Sie die Dateigr??e durch Php.ini- und HTML -Formulare und setzen Sie die Verzeichnisberechtigungen auf 0755; 4. Verwenden Sie Clamav, um Malware zu scannen, um die Sicherheit zu verbessern. Diese Schritte verhindern effektiv Sicherheitslücken und stellen sicher, dass der Upload -Prozess des Datei -Uploads sicher und zuverl?ssig ist.

Ja, PHP kann mit NoSQL -Datenbanken wie MongoDB und Redis durch bestimmte Erweiterungen oder Bibliotheken interagieren. Verwenden Sie zun?chst den MongoDBPHP -Treiber (installiert über PECL oder Composer), um Client -Instanzen zu erstellen und Datenbanken und Sammlungen zu betreiben, wobei Sie Insertion, Abfrage, Aggregation und andere Vorg?nge unterstützen. Zweitens verwenden Sie die Predis Library oder PHPREDIS-Erweiterung, um eine Verbindung zu Redis herzustellen, Schlüsselwerteinstellungen und -akquisitionen durchzuführen und PHPREDIS für Hochleistungsszenarien zu empfehlen, w?hrend Predis für die schnelle Bereitstellung bequem ist. Beide sind für Produktionsumgebungen geeignet und gut dokumentiert.

In PHP ist der Hauptunterschied zwischen == und == die Strenge der Typprüfung. == Die Konvertierung des Typs wird vor dem Vergleich durchgeführt, beispielsweise 5 == "5" gibt true zurück und === fordert an, dass der Wert und der Typ gleich sind, bevor True zurückgegeben wird, z. B. 5 === "5" gibt false zurück. In den Nutzungsszenarien ist === sicherer und sollte zuerst verwendet werden, und == wird nur verwendet, wenn die Typumwandlung erforderlich ist.

Die Methoden zur Verwendung grundlegender mathematischer Operationen in PHP sind wie folgt: 1. Additionszeichen unterstützen Ganzfaktoren und Floating-Punkt-Zahlen und k?nnen auch für Variablen verwendet werden. String -Nummern werden automatisch konvertiert, aber nicht für Abh?ngigkeiten empfohlen. 2. Subtraktionszeichen verwenden - Zeichen, Variablen sind gleich, und die Typumwandlung ist ebenfalls anwendbar. 3. Multiplikationszeichen verwenden * Zeichen, die für Zahlen und ?hnliche Zeichenfolgen geeignet sind; 4. Division verwendet / Zeichen, die vermeiden müssen, durch Null zu dividieren, und beachten Sie, dass das Ergebnis m?glicherweise schwimmende Punktzahlen sein kann. 5. Die Modulzeichen k?nnen verwendet werden, um ungerade und sogar Zahlen zu beurteilen, und wenn negative Zahlen verarbeitet werden, stimmen die Restzeichen mit der Dividende überein. Der Schlüssel zur korrekten Verwendung dieser Operatoren liegt darin, sicherzustellen, dass die Datentypen klar sind und die Grenzsituation gut behandelt wird.
