那些年一起学习的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 相关文章推荐
手把手教你使用DedeCms V3的在线采集图文教程
Apr 03 PHP
Discuz 模板语句分析及知识技巧
Aug 21 PHP
PHPThumb PHP 图片缩略图库
Mar 11 PHP
php去掉URL网址中带有PHPSESSID的配置方法
Jul 08 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
php实现mysql备份恢复分卷处理的方法
Dec 26 PHP
php绘制一个矩形的方法
Jan 24 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
Jul 29 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
ThinkPHP下表单令牌错误与解决方法分析
May 20 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
Oct 12 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 闭包特性在实际应用中的问题
2009/10/30 PHP
PHP中的类型约束介绍
2015/05/11 PHP
PHP合并数组函数array_merge用法分析
2017/02/17 PHP
轻松实现php文件上传功能
2017/02/17 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
从JavaScript的函数重名看其初始化方式
2007/03/08 Javascript
奇妙的js
2007/09/24 Javascript
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
JavaScript可否多线程? 深入理解JavaScript定时机制
2012/05/23 Javascript
IE浏览器中图片onload事件无效的解决方法
2014/04/29 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
ECMAscript 变量作用域总结概括
2017/08/18 Javascript
基于vue实现移动端圆形旋钮插件效果
2018/11/28 Javascript
layui添加动态菜单与选项卡
2019/07/26 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
详解Python中dict与set的使用
2015/08/10 Python
Python 正则表达式入门(初级篇)
2016/12/07 Python
简单了解Django模板的使用
2017/12/20 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
python数值基础知识浅析
2019/11/19 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
Python基于爬虫实现全网搜索并下载音乐
2021/02/14 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
中东奢侈品市场:Coveti
2019/05/12 全球购物
演讲稿开场白
2014/01/13 职场文书
JAVA程序员自荐书
2014/01/30 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
学习十八大标语
2014/10/09 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫
Python字符串常规操作小结
2022/04/03 Python
win10忘记pin密码登录不了怎么办?win10忘记pin密码登不进去的解决方法
2022/07/07 数码科技