php学习零散笔记—字符串分割、fetch函数和单双引号。

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

1 字符串分割——split()函数和PReg_split()函数

split — 用正则表达式将字符串分割到数组中——貌似php5.3以上已不赞成使用

array split ( string $pattern , string $string [, int $limit ] )

preg_split — 通过一个正则表达式分隔字符串

array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] )

相同点:都是用正则表达式来分割字符串。

split()用起来更简单,比如分割"2008-12-16 15:48:12",split可以这么写split(['- :'])

而preg_split()要复杂些,就得这么写preg_split("/[\s-:]/")

原因是:split()只支持POSIX风格的正则表达式,而preg_split只支持Perl风格的正则表达式

POSIX风格要比Perl风格的简单,但它不是二进制安全的

对了,还有个explode(),和上面两个函数不同,它是用字符串来分割字符串。

array explode ( string $delimiter , string $string [, int $limit ] )

使用一个字符串分割另一个字符串

注:网上有好多二进制安全的解释,我感觉下面这个解释对于理解上面那句话有帮助:

二进制安全的函数只关心二进制化的字符串,不关心字符串的具体格式,它只会严格的按照二进制的数据进行存取,不会以某种特殊格式解析数据。

2MySQLi::fetch_array 和mysqli::fetch_row的区别

mysqli_result::fetch_row()

从结果集中取得一行作为枚举数组

mixed mysqli_result::fetch_array ([ int $resulttype = MYSQLI_BOTH ] )

从结果集中取得一行作为关联数组,或数字数组,或二者兼有

手册说两者性能貌似没有太大的区别,前者是后者的增强版。

3 单引号和双引号

php的两种字符串类型,单引号和双引号。

单引号的字符串是纯文本(真正的文本),它会不经修改而直接发送给浏览器,不管是变量名称还是其它任何文本。

双引号的字符串,php会尝试计算双引号字符串,其中的变量名称将被变量值所代替。

在这里,变量、字符串、文本和原始数据的概念不能混淆:

变量是表示数据的符号,变量用变量名称表示,表示数据的符号

而单引号的字符串则是文本,本身(字面值)就是原始数据

关键是理解文本和变量的区别,文本是数据,变量是数据的符号。

可以看看《PHP和MySQL Web开发(原书第4版)》中文版第12页对于字符串的介绍。

参考:

《PHP和MySQL Web开发(原书第4版)》中文版第12页,Luke Welling & Laura Thomson著

php二进制字符串的含义 http://www.lofter.com/postentry?from=search&permalink=139418_34c583

知乎:二进制安全是什么意思? http://www.zhihu.com/question/28705562

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航