这周去听了Google的演讲,从Idea到Code的商业宣传。不过因为是头一次听英文演讲,心里还是很舒服。这周主要做的是Bootstrap前端美化,这个框架也比较好玩。在php上面花的时间相对少了,也就自己找找乐子吧。
1.php的输出\n被吞掉
很基础的东西,属于概念混淆了。\n是转义字符,但作用的地方是在字符串;而在网页(htmltext)中换行要用标签<br>。
2.php的输出函数
echo:首先,echo不是一个函数,而是一个语言结构。那语言结构是什么呢?语言结构就是php语法的一部分,不能被用户定义。而且相比函数,在执行时会更快,因为在php里,函数都要仙贝php解析器分解成语言结构,所以函数比语言结构多执行一层解析器解析。正因为是语言结构所以在使用时,其参数的括号可以不写。其也没有返回值。
print:和echo一样,也是语言结构,不同的是返回值为1。这里还有一个与print有关奇怪的例子。
if(print("我想输出") && print("我也想输出")){
//猜猜输出结果是什么?
}
按照&&的判断过程,应该两句话都要输出。但运行结果是只有“我也想输出1”。其原因在符号匹配的问题的匹配问题,第一个print是直到第二句话说完结束。所以想两句都输出应该这样。
if((print("我想输出")) && (print("我也想输出"))){
//猜猜输出结果是什么?
}
printf:格式化输出,这就是个函数。学习c的时候就很熟悉了,脑海一下子就出现了%d,%f...其返回值是输出字符串的长度。
springf:和printf类似,不过返回的是字符串。比如这样。
$str = "Hello";
$num = 13;
$txt = sprintf("%s world. The number is %u",$str,$num);
echo $txt;
输出的就是“Hello world. The number is 13”。
fpinrtf:将格式化后的字符串写入到流(stream)中。流的机制就是将内容按特定的编码传输。返回的是字符串的长度。
vprintf:那是输出格式化的字符串,不过第二个参数的是一个数组,而不是可变数量的参数。返回的也是字符串的长度。
vsprintf:就是spirngf+vprintf。