2017-08-29 3 views
3

Ich grabe durch PHP (mit PHPStorm), um herauszufinden, wie Ausnahmen funktionieren, und ich laufe immer wieder über eine interessante Situation, wo Funktionen leere Blöcke haben.Warum scheint es, dass PHP-Kernfunktionen leere Blöcke haben?

function error_reporting ($level = null) {} 

Und es ist nicht einzigartig:

Zum Beispiel in PHP Runtime/Core/Core.php, die error_reporting Funktion ist wie folgt definiert. Die Hinzu kommt, dass Dateien geht so (alle Dokumentation Kommentare ignorieren):

<?php 

// Start of Core v.5.3.6-13ubuntu3.2 

function zend_version() {} 

function func_num_args() {} 

function func_get_arg ($arg_num) {} 

function func_get_args() {} 

function strlen ($string) {} 

Warum die Streben alle leer sind? Wenn ich durch andere Kerndateien schaue, sehe ich viele Funktionsdefinitionen, aber keinen tatsächlichen Code. Wo ist alles?

+4

Diese sehen wie Stubdefinitionen aus, nicht tatsächliche Implementierungen. – tadman

+0

Ich * denke * es ist innerhalb des PHP-Prozessors selbst. – aynber

+3

Diese werden nur dort zur Verfügung gestellt, damit Ihre IDE Ihnen automatische Vervollständigung und ähnliche nützliche Funktionen zur Verfügung stellen kann. – Giedrius

Antwort

4

Die von Ihnen betrachteten "Core" -Dateien werden mit PHPStorm zur Unterstützung der Autovervollständigung geliefert. Sie werden vom PHP-Interpreter nicht wirklich verwendet. Diese Funktionen sind tatsächlich alle im PHP-Interpreter in nativem C-Code implementiert. Die echte Definition von error_reporting, zum Beispiel, ist in Zend/zend_builtin_functions.c. Es ist unwahrscheinlich, dass es Ihnen viel sagt, wenn Sie mit den Interna von PHP nicht vertraut sind.

+1

Ich denke, Giedrius hat es in den Kommentaren genagelt. Wenn Sie Ihre Antwort bearbeiten möchten, um dies zu berücksichtigen, werde ich Sie als akzeptiert markieren. – amflare

+0

@amflare Ich bin ein wenig zögerlich, um zu dieser Schlussfolgerung zu springen, ohne genau zu wissen, was du anschaust. Welche IDE verwenden Sie und welcher Pfad wurde für diese Datei angezeigt? – duskwuff

+0

PHPSstorm und der Pfad war 'PHP Runtime/Core/Core.php' – amflare

Verwandte Themen