タグ

phpとstringに関するnabinnoのブックマーク (3)

  • PHP7から文字列の無駄なコピーが減った話 - hnwの日記

    このエントリは闇PHP Advent Calendar 2015の14日目です。 稿では、PHP7のzend_string構造体導入によるメリットの話をします。 PHP5とPHP7の文字列型の扱い PHP5では、文字列型の変数は次のようにメモリに割り当てられます(横幅いっぱいが8バイト)。 文字列の体以外はzval構造体で管理し、文字列の体は別途メモリ確保するという形になっています。一方、PHP7では次のようになります。 1つの文字列変数が、zval構造体とzend_string構造体の組み合わせで実現されています。 これだけ見ると、PHP7では文字列長と参照カウンタrefconuntがzvalから追い出されてzend_stringに移動したくらいで、PHP5とPHP7のメモリ消費量に大きな違いは無いように思えるかもしれません(あるいはPHP7の方が不利に見えるかもしれません)。しか

    PHP7から文字列の無駄なコピーが減った話 - hnwの日記
  • PHPのインターン化文字列とは何か - hnwの日記

    このエントリは闇PHP Advent Calendar 2015の3日目です。なぜか@do_akiさんによる4日目の記事「ZEND_TICKS と tick 関数」を読んだ後で書いています。 稿では、あまり日語での説明を見たことがないPHPのインターン化文字列(interned strings)について紹介します。 文字列のインターン化とは 文字列のインターン化というのは多くのプログラミング言語で採用されているテクニックで、同じ不変文字列がプログラム中に何度も登場するような場合に、毎回文字列をコピーするのではなく同じ文字列を共有することで実行時間やメモリ消費量などを有利にするようなものです。Wikipediaの「String interning」なども参照してください。 internというのは軍などで使われる単語で、抑留というのが日語で一番近い単語だと思いますが、どうもピンとこないの

    PHPのインターン化文字列とは何か - hnwの日記
  • PHP: String 関数 - Manual

    参考 より強力な文字列処理および処理関数については、 Perl 互換正規表現関数 を参照ください。 マルチバイト文字のエンコーディングを扱うときは、 マルチバイト文字列関数. を参照ください。 目次addcslashes — C 言語と同様にスラッシュで文字列をクォートするaddslashes — 文字列をスラッシュでクォートするbin2hex — バイナリのデータを16進表現に変換するchop — rtrim のエイリアスchr — 数値から、1バイトの文字列を生成するchunk_split — 文字列をより小さな部分に分割するconvert_cyr_string — キリル文字セットを他のものに変換するconvert_uudecode — uuencode された文字列をデコードするconvert_uuencode — 文字列を uuencode するcount_chars — 文字列

  • 1