那些年一起学习的PHP(三)


Posted in PHP onMarch 22, 2012

一:PHP数据的输出

PHP支持的丰富的数据类型。后来在学习中会反复使用,有其他语言的学习知识,比较记忆更容易了解PHP的独到之处。下面先阐述一下PHP的输出。PHP向浏览器的基本输出方式有Echo(),Print(),printf(),sprintf()我们可以对比一下一上四种输出方式。

Function Echo() print() printf() sprintf()
Return Void int:  ever return 1 int: string
Express Echo(string argument) print(argument) printf(string format) printf(string format)
Instruction 写入字符串即可 写入字符串,返回值是1,用来验证是否成功显示 支持输出格式字符串,格式参看下面讲述 同样格式字符串,但是不直接呈现浏览器

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

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

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

类型 描述 举例
%b 将参数认为是一个整数,显示其二进制数 printf(%d,10);=======>显示1010
%c 将参数认为是一个整数,显示其ASCII字符 printf(%c,65);======>显示A
%d 将参数认为是一个整数,显示其十进制 printf(%d,10);=======>10
%f 将参数认为是一个浮点数,显示其浮点数 printf(%f,2);========>2.00000
%o 将参数认为是一个整数,显示其八进制 Printf(%o,8)============10
%s 将参数认为是一个字符串,显示其字符串 printf(%s,”this  is a TV ”)=====>this is a TV
%u 将参数认为是一个整数,显示一个无符号十进制 printf(%u,-100)======>100
%x 将参数认为是一个整数,小写的十六进制
%X 将参数认为是一个整数,大写的
三:PHP中变量声明的注意点
在php中变量的声明类似于shell脚本语言,变量都是以$符号开始的,我们要注意以下几点:
1):$总是在变量前面,变量是有效的标示符。
2):变量是严格区分大小写,例如$Book与$book是不一样的。
3):PHP变量不需要显示声明,刚好与C语言相反。
4):声明之后便可以为变量赋值,赋值分为按值赋值,引用赋值引用赋值是按堆栈地址赋值

四:PHP中变量的的作用域
按照作用域区分变量有局部变量,全局变量,静态变量,PHP还有独特的超级全局变量。局部变量只能在声明的作用域中使用,全局作用变量在整个生命周期中都可以使用。静态变量是声明使用Static 修饰符,在函数退出后static 变量仍然在内存中存在。例如

<?php 
funtion keep() 
{ 
static $count=0; 
$count++; 
echo $count; 
echo "<br />"; 
} 
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),操作环境,本地环境等等。例如可以使用
foreach($_SERVER as $var => $value) 
{ 
//遍历输出所有系统超级变量 
echo "$var => $value <br />"; 
}

可以看到输出好多系统变量
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方法传递参数有关信息。
考虑如下的请求表单:
<form action="a.php" method="post"> 
<p/> Email-adress:<input type="text" name="email" size="20" maxlength="50" value=""> 
<p />Password:<br /> 
<input type="password" name="pswd" size="20" maxlength="15" value=""> 
<br/> 
<input type="submit" name="submit" size="20" maxlength="50" value="LOGIN"> 
</form>

通过目标脚本a.php就可以使用下面这些POST变量:
$_POST[‘email']=”zyl0395@126.com”;
$_POST[‘pswd']=”Bestyear”;
我们还可以使用超级全局变量保存COOKIE信息,$_COOKIE保存了HTTPcookie中的所有传到脚本的信息,这些cookie一般由以前执行的PHP脚本通过PHP函数setcookie()设置的。例如:
<?php 
$value = ' somewhere'; 
setcookie("TestCookie", $value); 
setcookie("TestCookie", $value, time()+3600); /* 一小时有效cookie */ 
setcookie("TestCookie", $value, time()+3600, "/~rasmus/", "example.com", 1); 
?>

这里看不懂无所谓的,后来还会专门研究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 则要这样:

<?php 
include "/user/local/lib/php/wjgilmore/init.inc.php "; 
?>

有个地方需要注意,就是
include在判断句中是,必须要用大括号{}界定
,否则会错误,这个要注意.,还可以通过include引用一个远程文件.如果文件所在的服务器支持PHP,通过传递必要的键值对(类似于GET请求的做法,所包含的变量也会得到解析)
例如:include “http://www.123.com/index.html?background=red”;
如果只引用一次,则用
include_once
,首先会检验是否引用了这个文件,如果没有则引用,如果有则不执行
include_once(),
确保一次。
同样的方法require是请求文件,同样是require_once请求一次。后续用到时间详细解释。
PHP 相关文章推荐
献给php初学者(入门学习经验谈)
Oct 12 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
PHP中的正则表达式函数介绍
Feb 27 PHP
php标签云的实现代码
Oct 10 PHP
php上传文件中文文件名乱码的解决方法
Nov 01 PHP
Linux下php5.4启动脚本
Aug 03 PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
yii2中LinkPager增加总页数和总记录数的实例
Aug 28 PHP
PHP实现找出链表中环的入口节点
Jan 16 PHP
PHP实用小技巧之调用录像的方法
Dec 05 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
Feb 22 PHP
那些年一起学习的PHP(二)
Mar 21 #PHP
那些年一起学习的PHP(一)
Mar 21 #PHP
ecshop 批量上传(加入自定义属性)
Mar 20 #PHP
批量去除PHP文件中bom的PHP代码
Mar 13 #PHP
TMDPHP 模板引擎使用教程
Mar 13 #PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 #PHP
PHP图片处理类 phpThumb参数用法介绍
Mar 11 #PHP
You might like
PHP语法速查表
2007/01/02 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
PHP判断是否连接上网络的方法
2015/07/01 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
js解决弹窗问题实现班级跳转DIV示例
2014/01/06 Javascript
JS去掉第一个字符和最后一个字符的实现代码
2014/02/20 Javascript
Javascript中arguments和arguments.callee的区别浅析
2015/04/24 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
jQuery EasyUI API 中文帮助文档和扩展实例
2016/08/01 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
纯原生js实现table表格的增删
2017/01/05 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
JS实现可视化文件上传
2018/09/08 Javascript
在Vue 中使用Typescript的示例代码
2018/09/10 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
vscode调试node.js的实现方法
2020/03/22 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
jQuery实现简单QQ聊天框
2020/08/27 jQuery
[01:13]DOTA2群星解读国服召集令 一起说出回归的理由
2013/07/17 DOTA
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
从零学Python之引用和类属性的初步理解
2014/05/15 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
详谈python中冒号与逗号的区别
2018/04/18 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
Python GUI自动化实现绕过验证码登录
2020/01/10 Python
python函数超时自动退出的实操方法
2020/12/28 Python
New Balance加拿大官方网站:运动鞋和健身服装
2018/11/19 全球购物
几道PHP的面试题
2012/05/19 面试题
临床医学应届生求职信
2013/11/06 职场文书
村优秀党员事迹材料
2014/01/15 职场文书
商务英语专业毕业生求职信
2014/07/06 职场文书
学校周年庆活动方案
2014/08/22 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技