ホームページ  >  記事  >  バックエンド開発  >  PHP の strlen 関数について簡単に説明し、phpstrlen function_PHP チュートリアルについて説明します。

PHP の strlen 関数について簡単に説明し、phpstrlen function_PHP チュートリアルについて説明します。

PHP中文网
PHP中文网オリジナル
2016-07-12 08:58:15783ブラウズ


PHP の strlen 関数について簡単に説明し、phpstrlen 関数について話しましょう


strlen 関数の説明。

int strlen (string $string)

この記事では、strlen 関数が Zend Engine を通じて定義されていることがわかります。関数の定義はここで確認できます。

関数のソース コードもここに示されています:

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);
}

この記事では、この関数は非常に単純で、これ以上の説明は必要ないと述べています。この記事では、zend_parse_parameters 関数についても紹介します。作者はバカなので、zend_parse_parameters関数がどのように可変長を返すのかを理解したいと思っています。

パラメータが解析される zend_parse_arg_impl 関数では、引き続き case 's' ブランチを調べます。この分岐は文字列変数の解析です。

int *pl = va_arg(*va, int *); は文字列長変数の定義です。

さらに下を見ていくと、pl 変数への代入ステートメントが表示されます: *pl = Z_STRLEN_PP(arg);。

Z_STRLEN_PP マクロの定義は zend_operators.h ファイルにあります:

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

引き続き Z_STRLEN マクロの定義、#define Z_STRLEN(zval) を見てみましょう。 ) (zval).value .str.len。このことから、strlen 関数は、zval 構造体の str の len 属性を直接返すことによって実装されていることがわかります。

http://www.bkjia.com/PHPjc/1104330.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1104330.htmlTechArticle では、PHP の strlen 関数について簡単に説明し、phpstrlen 関数について説明しています。 strlen 関数を説明します。 int strlen ( string $string ) この記事では、strlen 関数が Zend Engine を通じて定義されていることがわかります...


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。