Sprechen Sie kurz über die Strlen-Funktion in PHP

高洛峰
Freigeben: 2023-03-04 09:48:02
Original
1621 Leute haben es durchsucht

Strlen-Funktionsbeschreibung.

int strlen ( string $string )

In diesem Artikel erfahren wir, dass die strlen-Funktion durch Zend Engine definiert wird. Die Funktionsdefinition kann hier eingesehen werden.

Der Quellcode der Funktion ist auch hier angegeben:

ZEND_FUNCTION(strlen)
{
  char *s1;
  int s1_len;
 
  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &s1, &s1_len) == FAILURE) {
    return;
  }
 
  RETVAL_LONG(s1_len);
}
Nach dem Login kopieren

Im Artikel wurde erwähnt, dass die Funktion sehr einfach ist und dies nicht der Fall ist bedürfen weiterer Erläuterungen. In diesem Artikel wird auch die Funktion zend_parse_parameters vorgestellt. Der Autor ist dumm, deshalb möchte ich verstehen, wie die Funktion zend_parse_parameters die Variablenlänge zurückgibt.

In der Funktion zend_parse_arg_impl, in der die Parameter analysiert werden, schauen wir uns weiterhin den Fall-Zweig an. Dieser Zweig ist das Parsen von String-Variablen.

int *pl = va_arg(*va, int *); ist die Definition der Stringlängenvariablen.

Schauen Sie weiter nach unten und Sie können die Zuweisungsanweisung zur pl-Variablen sehen: *pl = Z_STRLEN_PP(arg);.

Das Makro Z_STRLEN_PP ist in der Datei zend_operators.h definiert:

#define Z_STRLEN_PP(zval_pp) Z_STRLEN(**zval_pp)

Sehen wir uns weiter an Z_STRLEN-Makrodefinition, #define Z_STRLEN(zval) (zval).value.str.len. Daraus können wir erkennen, dass die strlen-Funktion durch direkte Rückgabe des len-Attributs von str in der zval-Struktur implementiert wird.

Weitere Artikel zur Strlen-Funktion in PHP finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!