日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php 字符串包含另一个字符串_每天一个PHP语法二字符串使用及内部结构

發(fā)布時(shí)間:2025/1/21 php 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php 字符串包含另一个字符串_每天一个PHP语法二字符串使用及内部结构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

說明

這里基于php7.2.5進(jìn)行測(cè)試,php7之后內(nèi)部結(jié)構(gòu)變化應(yīng)該不是太大,但與php5.X有差別。

代碼

基于上一篇我們說的變量的聲明與使用我們這次說一下字符串及實(shí)現(xiàn)

$a = "hello";

我們說zend_value.str結(jié)構(gòu)用來存儲(chǔ)字符串,具體到內(nèi)部的結(jié)構(gòu)就是zend_string

struct _zend_string {zend_refcounted_h gc; /*引用計(jì)數(shù) 用于垃圾回收*/zend_ulong h; /* hash value */size_t len; /* 字符串長(zhǎng)度 */char val[1]; /* 值 hello */};

這里我們只關(guān)注len與val。len用來存儲(chǔ)字符串長(zhǎng)度,val用來存儲(chǔ)值, val是char類型的數(shù)組,char是字符類型,長(zhǎng)度是1個(gè)字節(jié),存儲(chǔ)單個(gè)字符。

這里len的好處我們可以直接獲取字符串的長(zhǎng)度,如strlen($a) , 我們后面再說這個(gè)函數(shù)。

字符串在C語(yǔ)言中并不是內(nèi)置類型,他其實(shí)是字符數(shù)組。C語(yǔ)言中聲明字符串

#include #include int main(){char hello[] = "hs"; printf("%s ", hello); return 0;}

C語(yǔ)言的字符串沒有存儲(chǔ)長(zhǎng)度,它是以null為終止符的,也就是遇到'0'字符就認(rèn)為是結(jié)束了。

我們對(duì)比下,C與PHP中獲取字符串長(zhǎng)度的區(qū)別。

#include #include int main(){char hello[] = "h0s";char hello1[] = "hs";int len,len1;len = strlen(hello);printf("hello長(zhǎng)度 %d ", len); // 1 因?yàn)橛龅?就終止了len1 = strlen(hello1);printf("hello1長(zhǎng)度 %d ", len1); //2 return 0;}gcc helloword.c -o helloword./hellowordhello長(zhǎng)度 1hello1長(zhǎng)度 2

PHP

echo strlen("h0s");echo PHP_EOL;echo strlen("hs");echo PHP_EOL;php hello.php32

可以看到zend_string的len是很便捷的、很安全的。

總結(jié)

php通過zend_string存儲(chǔ)字符串,其中l(wèi)en存放字符串長(zhǎng)度,val存放值。

總結(jié)

以上是生活随笔為你收集整理的php 字符串包含另一个字符串_每天一个PHP语法二字符串使用及内部结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。