免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3641 | 回复: 3
打印 上一主题 下一主题

那些年一起学习的PHP(三) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-19 17:00 |只看该作者 |倒序浏览
那些年一起学习的PHP(三)








          认识过PHP的变量以后就要懂得使用规则,定义方式,输出方式,存储方式才可以利用变量,下面就来认识:

一:PHP数据的输出

    PHP支持的丰富的数据类型。后来在学习中会反复使用,有其他语言的学习知识,比较记忆更容易了解PHP的独到之处。下面先阐述一下PHP的输出。PHP向浏览器的基本输出方式有Echo(),Print(),printf(),sprintf()我们可以对比一下一上四种输出方式。
  1. Function Echo() print() printf() sprintf()
  2. Return Void  int:  ever return 1  int: string  
  3. Express Echo(string argument) print(argument) printf(string format) printf(string format)
复制代码
Instruction 写入字符串即可 写入字符串,返回值是1,用来验证是否成功显示 支持输出格式字符串,格式参看下面讲述 同样格式字符串,但是不直接呈现浏览器



其实Echo()与print() 的区别是不太大的,使用哪一个完全取决于自己的喜好,后两者一样。什么叫格式化字符串输出呢?有C/C++语言时我们会明白这个意思,也就是输出时我们可以应该适当的格式化符号,让输出格式化。



二:PHP中使用到的格式化输出格式

这些格式化符号下表显示:



类型 描述 举例
  1. %b 将参数认为是一个整数,显示其二进制数 printf(%d,10);=======>显示1010
  2. %c 将参数认为是一个整数,显示其ASCII字符 printf(%c,65);======>显示A
  3. %d 将参数认为是一个整数,显示其十进制 printf(%d,10);=======>10
  4. %f 将参数认为是一个浮点数,显示其浮点数 printf(%f,2);========>2.00000
  5. %o 将参数认为是一个整数,显示其八进制 Printf(%o,8)============10
  6. %s 将参数认为是一个字符串,显示其字符串 printf(%s,”this  is a TV ”)=====>this is a TV  
  7. %u 将参数认为是一个整数,显示一个无符号十进制 printf(%u,-100)======>100
  8. %x 将参数认为是一个整数,小写的十六进制 略
  9. %X 将参数认为是一个整数,大写的 略
复制代码
三:PHP中变量声明的注意点

     在php中变量的声明类似于shell脚本语言,变量都是以$符号开始的,我们要注意以下几点:

1):$总是在变量前面,变量是有效的标示符。

2):变量是严格区分大小写,例如$Book与$book是不一样的。

3):PHP变量不需要显示声明,刚好与C语言相反。

4):声明之后便可以为变量赋值,赋值分为按值赋值,引用赋值引用赋值是按堆栈地址赋值





四:PHP中变量的的作用域

     按照作用域区分变量有局部变量,全局变量,静态变量,PHP还有独特的超级全局变量。局部变量只能在声明的作用域中使用,全局作用变量在整个生命周期中都可以使用。静态变量是声明使用Static 修饰符,在函数退出后static 变量仍然在内存中存在。例如
  1.    1:  <?php   2:      3:      funtion keep()   4:    {   5:       static $count=0;   6:      $count++;   7:      echo $count;   8:      echo "&lt;br />";   9:    }   10:     11:  keep();//输出1  12:  keep();//输出2  13:  keep();//输出3  14:  keep();//输出4  15:     16:  //你可能以为输出的值全部是1,但是刚好确实是1234,这里正是static的使用效果  17:  ?>  五:超级全局变量($_SERVER,$_GET,$_POST,$_COOKIE),$_FILES,$_ENV ,$_SESSION
复制代码
再来看超级全局全局变量。PHP提供很多有用的预定义变量,可以再执行脚本的任意位置访问,用于提供大量与环境相关的信息,还可以获得当前用户会话(session),操作环境,本地环境等等。例如可以使用
  1.    1:  foreach($_SERVER as $var => $value)   2:  {   3:     //遍历输出所有系统超级变量   4:      echo "$var => $value <br />";   5:  }
复制代码
可以看到输出好多系统变量HTTP_HOST
=> Localhost
等等系统信息我们就可以通过$_SERVER[“HTTP_HOST”]
来获得这些全局变量。$_SERVER全局变量包含WEB服务器,客户配置,当前信息等可以通过查找文档使用。另外还可以通过GET方法获取传递的变量。$_GET超级全局变量包含试用GET方法专递的参数的有关信息。例如请求的URL地址是http://www.baidu.com/index.html?cat=apache&id=145 ,就可以使用超级全局变量访问如下变量:$_GET[‘cat’]=”apache”; $_GET[‘id’]=”145” ,默认的情况下要访问通过GET方法传递的变量,$_GET 超级全局变量是唯一的访问途径,不能用$cat, $id的方式引用GET的变量,后续了解关于安全访问外部数据的章节会详细说明。另外使用POST的方法也可以传递变量。具体如下:$_POST超级全局变量包含用POST方法传递参数有关信息。考虑如下的请求表单:
  1. 1:  <form action="a.php" method="post">   2:             <p/> Email-adress:<input type="text" name="email" size="20" maxlength="50" value="">   3:             <p />Password:<br />   4:             <input type="password" name="pswd" size="20" maxlength="15" value="">   5:             <br/>   6:             <input type="submit" name="submit" size="20" maxlength="50" value="LOGIN">   7:  </form>通过目标脚本a.php就可以使用下面这些POST变量:$_POST[‘email’]=”zyl0395@126.com”;$_POST[‘pswd’]=”Bestyear”;我们还可以使用超级全局变量保存COOKIE信息,$_COOKIE保存了HTTPcookie中的所有传到脚本的信息,这些cookie一般由以前执行的PHP脚本通过PHP函数setcookie()设置的。例如:   1:  <?php   2:            $value = ' somewhere';   3:      4:            setcookie("TestCookie", $value);   5:            setcookie("TestCookie", $value, time()+3600);  /* 一小时有效cookie */   6:            setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1);   7:  ?>
复制代码
这里看不懂无所谓的,后来还会专门研究cookie的知识。$_FILES是通过POST向服务器上传文件使用的变量,$_files主要用在当需要上传二进制文件的地方,录入上传一个abc.mp3文件,则服务器端需要获得该文件的相关信息,则通过变量$_files来取得。 共有五个元素:1)_FILES['userfile']['name']
客户端机器文件的原名称。

2)_FILES['userfile']['type']
文件的 MIME 类型,需要浏览器提供该信息的支持,例如“image/gif”。

3)_FILES['userfile']['size']
已上传文件的大小,单位为字节。

4)_FILES['userfile']['tmp_name']
文件被上传后在服务端储存的临时文件名。

5)_FILES['userfile']['error']
和该文件上传相关的错误代码。['error'] 是在 PHP 4.2.0 版本中增加的。

$_EVN 是PhP服务器使用的有关信息, $_SESSION 获得会话的有关信息

六:PHP 常量定义使用

常量是程序中无法更改的量,非常有用如:圆周率



定义:define(”PI” ,3.1415926)

使用 echo PI;



七:关于PHP中的逻辑符号,运算等级,表达式,流程控制,逻辑等等不再介绍,基本和C++语言相符,这里只是简单写一下没有的部分。例如 Include 在PHP中的作用。

        include在PHP中也是引入包含文件的句子,基本语法是include(/path/to/file)要引用/user/local/lib/php/wjgilmore/init.inc.php 则要这样:

   1:  <?php   2:    include  "/user/local/lib/php/wjgilmore/init.inc.php ";   3:  ?>有个地方需要注意,就是include在判断句中是,必须要用大括号{}界定
,否则会错误,这个要注意.,还可以通过include引用一个远程文件.如果文件所在的服务器支持PHP,通过传递必要的键值对(类似于GET请求的做法,所包含的变量也会得到解析)例如:include “http://www.123.com/index.html?background=red”;如果只引用一次,则用include_once
,首先会检验是否引用了这个文件,如果没有则引用,如果有则不执行include_once(),
确保一次。同样的方法require是请求文件,同样是require_once请求一次。后续用到时间详细解释。

论坛徽章:
0
2 [报告]
发表于 2012-03-19 17:00 |只看该作者
谢谢分享

论坛徽章:
0
3 [报告]
发表于 2012-03-27 14:05 |只看该作者
看到输出,其实诧异无非是直接输出,还是可选返回数据,还是可选传入数值输出。
记得有本书里的大大说,多用echo..又有本书里的大大说,别用echo...

个人还是喜欢用heredoc输出,这个楼主落下了..
或者用echo组合输出

论坛徽章:
0
4 [报告]
发表于 2012-04-13 14:49 |只看该作者
不错,感觉include  url的应用,貌似很少。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP