Heim  >  Artikel  >  Backend-Entwicklung  >  Wie implementiert man eine benutzerdefinierte Funktion in PHP, ohne einen Fehler auszulösen, wenn @ enthalten ist?

Wie implementiert man eine benutzerdefinierte Funktion in PHP, ohne einen Fehler auszulösen, wenn @ enthalten ist?

WBOY
WBOYOriginal
2016-09-19 09:16:37991Durchsuche

In einigen in PHP integrierten Funktionen (z. B. mkdir) kann das Hinzufügen von @ vor die von der Funktion ausgegebenen Fehler maskieren

Wie erreichen benutzerdefinierte Funktionen dies?

Ich habe throw new Exception und trigger_error ausprobiert, aber sie konnten nicht von @

blockiert werden

Zusätzliche Anweisungen:

ist so. Ich möchte zum Beispiel eine JsonFile::get()-Methode schreiben, die einen Fehler auslöst, wenn die Datei nicht existiert, einen Fehler auslöst, wenn der Pfad unzulässig ist, einen Fehler auslöst, wenn die Dekodierung fehlschlägt, und falsch

Wenn der Benutzer sich um die Fehlermeldung kümmert, kann er sie selbst abfangen und bearbeiten; wenn der Benutzer sich nicht um die Fehlermeldung kümmert und nur den Dateiinhalt oder falsch (Fehler) erhalten möchte, kann er


@JsonFile::get()Rufen Sie so an

Hauptsächlich aus Bequemlichkeitsgründen. Wie implementiert man eine solche benutzerdefinierte Methode (oder Funktion)?

Oder vielleicht ist meine Denkweise nicht gut? Gibt es eine bequeme und sinnvolle Implementierungsmethode?

Antwortinhalt:

In einigen in PHP integrierten Funktionen (z. B.

) kann das Hinzufügen von @ vor die von der Funktion ausgegebenen Fehler maskierenmkdir

Wie erreichen benutzerdefinierte Funktionen dies?

Ich habe

und throw new Exception ausprobiert, aber sie konnten nicht von trigger_error@ blockiert werden

Zusätzliche Anweisungen:

ist so. Ich möchte zum Beispiel eine

-Methode schreiben, die einen Fehler auslöst, wenn die Datei nicht existiert, einen Fehler auslöst, wenn der Pfad unzulässig ist, einen Fehler auslöst, wenn die Dekodierung fehlschlägt, und falsch JsonFile::get() Wenn der Benutzer sich um die Fehlermeldung kümmert, kann er sie selbst abfangen und bearbeiten; wenn der Benutzer sich nicht um die Fehlermeldung kümmert und nur den Dateiinhalt oder falsch (Fehler) erhalten möchte, kann er


Rufen Sie so an@JsonFile::get()
Hauptsächlich aus Bequemlichkeitsgründen. Wie implementiert man eine solche benutzerdefinierte Methode (oder Funktion)?

Oder vielleicht ist meine Denkweise nicht gut? Gibt es eine bequeme und sinnvolle Implementierungsmethode?


Stellen Sie zunächst sicher, dass die Syntax korrekt ist, und dann scheint es nichts mit „throw new Exception“ und „trigger_error“ zu tun zu haben. Hier ist der Code:

Warnung: mysql_connect() [function.mysql-connect]: Zugriff für Benutzer „falscher Benutzername“@„localhost“ (mit Passwort: JA) in D:Projectsns1.php in Zeile 4 verweigert
<code><?php

    function test($abc){
        mysql_connect("localhost", "用户名错误", "密码错误");
    }
    
    function test2($abc){
        mysql_connect("localhost", "用户名错误", "密码错误");
    }
    
    test("abc");
    @test2("abc");
?></code>

test2 hat keine Warnung ausgegeben.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn