那些年一起学习的PHP(三)
程序员文章站
2022-05-31 10:49:56
一:php数据的输出 php支持的丰富的数据类型。后来在学习中会反复使用,有其他语言的学习知识,比较记忆更容易了解php的独到之处。下面先阐述一下php的输出。php向浏览...
一:php数据的输出
php支持的丰富的数据类型。后来在学习中会反复使用,有其他语言的学习知识,比较记忆更容易了解php的独到之处。下面先阐述一下php的输出。php向浏览器的基本输出方式有echo(),print(),printf(),sprintf()我们可以对比一下一上四种输出方式。
其实echo()与print() 的区别是不太大的,使用哪一个完全取决于自己的喜好,后两者一样。什么叫格式化字符串输出呢?有c/c++语言时我们会明白这个意思,也就是输出时我们可以应该适当的格式化符号,让输出格式化。
二:php中使用到的格式化输出格式
这些格式化符号下表显示:
三: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的独到之处。下面先阐述一下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中变量的声明类似于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请求一次。后续用到时间详细解释。