09月28, 2013

PHP的一点小知识(2)

继续前天的写吧。

16、在变量名后面加括号“()”,系统会自动查找与变量值同名的函数并执行,这个与可变变量有些相似,如:

<?php
$a = "func_a";

function func_a(){
    return 0;
}

$a();  //这里使用变量名加插号就相当于调用与a的变量值同名的函数

17、可以在函数体内嵌套定义函数,被嵌套的函数是不公开的,并且只在父函数体内有效;

18、PHP中可以使用nl2br()函数把字符串中的换行符自动输出为“
”,如:

<?php
$string = "这是第一行\n这是第二行";
echo nl2br($string);

/**********
输出:
这是第一行
这是第二行

************
HTML
这是第一行<br />这是第二行
**************/

19、PHP中常用的定义字符串的方式有三种,即单引号、双引号和heredoc方式,双引号内的变量和转义符会被正常解析并输出,而单引号中的不会,所以一般字符串里面不包含需要被转义的字符串时建议使用单引号,因为更快的执行速度;heredoc方式是以三个小于号“<<<”作为定界符,外加一个标识这样的方式来定义字符串的,这样做的好处是可以同时包含多行内容,并且行内的变量会被解析:

<?php
$a = 'icewingcc.com';
$str1 = 'This is my website:\n$a';
//单引号内的变量和转义符不会被解析,所以字符串会被原样输出

$str2 = "This is my website:\n$a';
/*会输出
This is my website:
icewingcc.com
因为字符串中的转义符和变量会被解析*/

$str3 = <<<ICE
这种定义方式需要三个小于号开头,再加一个标识(任意字母)
字符串定义结束的时候需要重复标识,并且前面不能有任何空格或TAB符
这种方式定义的字符串里的变量可被正常解析
ICE;
//注意最后一行的标识

20、一些常用的字符串处理函数,不需要全部牢记,但至少要知道有这些函数,这样可以在使用的时候再去查具体的用法,至少可以少走些弯路:

<?php
strlen();  //获取字符串的长度
trim(); ltrim(); rtrim();  //删除字符串两端多余的空格
strtolower(); strtoupper();  //将字符串转换成小写/大写
ucfirst(); ucwords();  //首字母大写、单词首字母大写
str_pad();  //字符串填充
str_rav();  //字符串反转
md5();   //对字符串进行MD5加密
number_format();  //格式化金额字符串
explode();   //将字符串分隔成数组
implode();   //将数组元素组合成字符串
echo(); print();  //输出一个字符串,echo可以同时输出多个字符串,注意这两个不是函数,而是关键字
printf();  //格式化并输出一个字符串
substr();  //截取字符串
strstr(); strrstr();  //查找一个字符串是否在另一个字符串中出现过
stristr();  //同上,是其不区分大小写的版本
strrchr(); strrstr(); strristr(); //同上,逆序查找,及其不区分大小写的版本
strpos(); stripos();  //查找一个字符串在另一个字符串中首次出现的位置
strtok(); //拆分字符串,每次调用获取一个子串而不是输出一个数组
parse_str();  //解析一个查询字符串到变量或数组

 

本文链接:https://icewing.cc/post/php-tips-2.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。