对比C语言学习PHP

发布时间 : 星期二 文章对比C语言学习PHP更新完毕开始阅读

$mailArr = array (“shlky@sina.com”, “error@”, “error@sina”); foreach ($mailArr as $mail) { if (ereg(“^[a-zA-Z0-9]+@([a-zA-Z0-9])+(\\.[a-zA-Z0-9])+”,$mail)) { echo “right!
”; } else { echo “error!
”; } } 上边这个例子输出”right! error! error!”。

ereg函数是正则表达式的相关函数之一,第一个参数是正则表达式,第二个参数为待匹配的字符串。下面来简单介绍一下正则表达式的写法。

“/” 定界符之间的部分就是将要在目标对象中进行匹配的模式。用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。

另外有三个元字符:

+ 这个字符表示符合前边要求的字符至少出现1次

* 这个字符表示符合要求的字符出现至少出现0次(不可以同任意字符相提并论) ? 表示前边的字符至多出现1次

比如规则 :

“/fo+/“:“foot”、”football”、”fox”均满足规则(f加至少一个o) “/a*e/“: “e“、”ae“、”aae“均满足规则(至少0个a和一个e)但是注意,再用正则表达式替换字符串的时候,在单词中出现的e也满足此规则,会被替换。如按照该规则,把符合规则的部分替换成”E“,那么”abcde”会被替换成”abcdE“。——这里

- 25 -

说的正则字符替换使用ereg_replace函数,其第一个参数为正则表达式,第二个参数是要替换成的内容,第三个参数是待操作字符串。

“/a?e/”: “e“、”ae“满足该规则,但是”aae“出现了多个a,不满足规则。

除了以上元字符,我们还可以制定一定的出现频率的范围 使用{x,y}。它表示前边的字符至少连续出现x次,之多连续出现y次。比如我们可以用”/[0-9]{5,10}/”这个规则验证qq号(5~10位)。 而上面这个规则中的[]范围内指定的是字符的范围,一个[]算作一个字符。当我们想制定一个规则来满足全部的大小写字母和数字的情况下,我们可以这样写:[a-zA-Z0-9]。而在满足这个规则的条件下,我们想可以让这个规则同时支持“_”,我们只要把”_”加入这个范围就好了:[a-zA-Z0-9_]。

除此之外,还有几个定位符需要同学们知道。较为常用的定位符包括: “^”, “$”, “\\b” 以及 “\\B”。

“^”定位符规定匹配模式必须出现在目标字符串的开头 “$”定位符规定匹配模式必须出现在目标对象的结尾

“\\b”定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一,可以当做前两种定位符使用。

“\\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内,即匹配对象既不能作为目标字符串的开头,也不能作为目标字符串的结尾。可以看作是”\\b”的逆运算。

“|”或规则,比如”/ac|ab/”ac 或者 ab。满足一个既可以匹配。

正字表达式非常强大,我暂时不能顿悟其中的奥妙,只能在此略微给同学们介绍一些,更详细的内容请同学们在网上详细学习。

- 26 -

【php函数库】

php有着非常强大的函数库,可以帮助我们完成各种功能,能够提高我们开发程序的

效率,同时也提高了程序运行的效率。php的库函数包括以下内容,具体函数请查看php常用函数手册。

#输出函数 #正则表达式函数 #数学函数 #时间函数 #字符处理函数 #文件操作函数 #数据库函数 #Session函数 #其他函数

#图像处理函数(GD库内容不在常用函数手册内,请自行查找)

- 27 -

八、预处理命令

“预处理命令”是我们在C语言书中看到的内容,主要包括宏定义、文件包含以及条件编译。在上面的章节中,我们已经介绍了PHP的宏定义(定义常量)、文件包含(文件包含函数)。而作为脚本语言,不存在编译的问题。这章只是为了对比C语言,稍微提一下。

九、指针

C语言学的很好的同学一定知道,指针是C语言程序设计的重点内容,它可以让我们的程序变得更加灵活(不深入研究C语言的我只能浅浅的评论了)。现在我们使用PHP,有没有像C语言的指针这样强大的功呢?

在php中,同样可以使用”&”取变量的地址,但是如果把一个变量$oldVar的地址赋值给另一个变量$newVar,语句如下:

$newVar = &$oldVar; 请注意,这个时候,$newVar保存的并不是$oldVar的指针,$newVar是$oldVar的一个引用。引用的概念学过C++的同学应该是知道,我们可以把它理解为是原变量的一个别名,两个变量共享同一内存空间,对于任何修改,两个变量均同时变化。

- 28 -

联系合同范文客服:xxxxx#qq.com(#替换为@)