那些年一起学习的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 相关文章推荐
打造计数器DIY三步曲(下)
Oct 09 PHP
一段防盗连的PHP代码
Dec 06 PHP
php 攻击方法之谈php+mysql注射语句构造
Oct 30 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
浅谈PHP调用Webservice思路及源码分享
Jun 04 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
给WordPress中的留言加上楼层号的PHP代码实例
Dec 14 PHP
php实现三级级联下拉框
Apr 17 PHP
PHP编写文件多服务器同步程序
Jul 02 PHP
PHP实现的DES加密解密类定义与用法示例
Nov 02 PHP
PHP进阶学习之Geo的地图定位算法详解
Jun 19 PHP
php7 list()、session及其他模块的修改实例分析
May 25 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 foreach、while性能比较
2009/10/15 PHP
windows下配置apache+php+mysql时出现问题的处理方法
2014/06/20 PHP
php发送邮件的问题详解
2015/06/22 PHP
php ajax异步读取rss文档数据
2016/03/29 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
浅谈Javascript变量作用域问题
2014/12/16 Javascript
了解Javascript的模块化开发
2015/03/02 Javascript
利用jQuery实现WordPress中@的ID悬浮显示评论内容
2015/12/11 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
2016/08/30 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
基于Ionic3实现选项卡切换并重新加载echarts
2020/09/24 Javascript
[42:20]2014 DOTA2华西杯精英邀请赛5 24 DK VS NewBee
2014/05/25 DOTA
Python解析最简单的验证码
2016/01/07 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
python实现京东订单推送到测试环境,提供便利操作示例
2019/08/09 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
简单掌握CSS3中resize属性的用法
2016/04/01 HTML / CSS
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
Speedo速比涛中国官方网站:全球领先泳装运动品牌
2018/04/24 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
成功的酒店创业计划书
2013/12/27 职场文书
给学校的建议书
2014/03/12 职场文书
自考毕业自我鉴定
2014/03/18 职场文书
村干部承诺书
2014/03/28 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
平安工地汇报材料
2014/08/19 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
学校党支部公开承诺书
2015/04/30 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server