一,前言
作为一名Java工程师,本人是很不乐意使用其他的语言开发项目的。但是呢,因项目需要,客户需求,不得已才零基础开发实战项目。
没办法啦,客户是上帝,满足客户的需求是我们的职责所在,干巴爹!
二,概要
print与print_r的区别、echo 和 print 的区别、var_dump()和print_r()的区别。
$_request与$_post、$_get的区别。
compact 的使用、extract的使用。
三,详情
1.echo 和 print 的区别
共同点:首先echo 和 print 都不是严格意义上的函数,他们都是 语言结构;他们都只能输出 字符串,整型跟int型浮点型数据。不能打印复合型和资源型数据;
而区别是:echo 可以连续输出多个变量,而print只能一次输出一个变量。print打印的值能直接复制给一个变量,如 $a = print “123”;
而echo 不可以,它没有像函数的行为,所以不能用于函数的上下文。在使用时,echo() 函数比 print()速度稍快。
2.var_dump()和print_r()的区别
共同点:两者都可以打印数组,对象之类的复合型变量。
区别:print_r() 只能打印一些易于理解的信息,且print_r()在打印数组时,会将把数组的指针移到最后边,使用 reset() 可让指针回到开始处。 而var_dump()不但能打印复合类型的数据,还能打印资源类型的变量。且var_dump()输出的信息则比较详细,一般调试时用得多。
3.
print() 只能打印出简单类型变量的值(如int,string)
print_r() 可以打印出复杂类型变量的值(如数组,对象)
print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print 实际上不是函数(而是语言结构),所以可以不用圆括号包围参数列表。
和 echo 最主要的区别: print 仅支持一个参数,并总是返回 1
4.
php中有$_request与$_post、$_get用于接受表单数据。
(1)、$_request与$_post、$_get的区别和特点
$_REQUEST[]具有$_POST[] $_GET[]的功能,但是$_REQUEST[]比较慢。
通过post和get方法提交的所有数据都可以通过$_REQUEST数组获得。
(2)、$_post、$_get的区别和特点
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。
举例:mypage?id=1这种就是GET方式传值,可以用$_request和$_get接受传值。
5.
compact 的作用是 建立一个数组,包括变量名和它们的值。
对每个参数,compact() 在当前的符号表中查找该变量名并将它添加到输出的数组中,变量名成为键名而变量的内容成为该键的值。
简单说,它做的事和 extract() 正好相反。返回将所有变量添加进去后的数组。
6.
语法:extract(array,extract_rules,prefix)
extract() 函数的作用是从数组中将变量导入到当前的符号表。
该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。
第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。
该函数返回成功导入到符号表中的变量数目。