php教程基础版.docx
- 文档编号:9890107
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:69
- 大小:39.70KB
php教程基础版.docx
《php教程基础版.docx》由会员分享,可在线阅读,更多相关《php教程基础版.docx(69页珍藏版)》请在冰点文库上搜索。
php教程基础版
第一章基本语法
第一节PHP代码书写
PHP代码我们以
php开始,以?
>结束。
如:
php
echo"我正在学习PHP";
?
>
在浏览器中将输出:
我正在学习PHP
这种风格我们称之为标准风格,我们也可省去“PHP”三个字母,即我们常常说
的简短风格。
如:
php
echo"我正在学习PHP";
?
>
同样我们在浏览器中可以看到:
我正在学习PHP
此外,还有Script风格,如:
echo"我正在学习PHP";
以及ASP风格,如:
<%
echo"我正在学习PHP";
%>
ASP风格在默认情况下是被禁止的,如果需要运行,需修改asp_tags选项,在
PHP.int里。
我们一般用标准风格及简短风格,Script风格及ASP风格基本不用,但是,为
了达到最好的兼容性,我们推荐使用标准风格,而不使用简短风格。
第二节PHP文本注释
在PHP中,我们使用“//”来编写单行注释,或者使用“/*…*/”来编写多
2
行注释,也可用“#”来注释,但这个不太常用。
文本的注释要写在代码的上方或右边,不要写在代码的下方。
php
//echo()函数输出一个或多个字符串。
/*echo()实际上不是一个函数,因此您无需对其使用括号。
不过,如果您希望向echo()传递一个或多个参数,
那么使用括号会发生解析错误。
*/
echo"我正在学习PHP";
?
>
在浏览器中只输出:
我正在学习PHP
而注释了的文本却没有显示。
第三节PHP输出函数
PHP输出函数有echo()函数与print()函数以及格式化输出函数printf()函数和
sprintf()函数。
一、echo()函数
echo()函数输出一个或多个字符串,可以用圆括号,也可不用,在实际应用中,
我们一般不用圆括号;echo更象一条语句,无返回值。
php
echo("今天天气很好,我们出去玩!
")."
";
echo"今天天气很好,我们出去玩!
";
?
>
浏览器中输出为:
今天天气很好,我们出去玩!
今天天气很好,我们出去玩!
二、print()函数
print()函数输出一个或多个字符串,可以用圆括号,也可不用,在实际应用中,
我们一般不用圆括号;print()函数有返回值,其返回值为1,当其执行失败(比
如断线)时返回flase。
3
php
print("今天天气很好,我们出去玩!
")."
";
print"今天天气很好,我们出去玩!
"."
";
echoprint"今天天气很好,我们出去玩!
";
?
>
浏览器中输出为:
今天天气很好,我们出去玩!
今天天气很好,我们出去玩!
今天天气很好,我们出去玩!
1
第一句、第二句都输出了“今天天气很好,我们出去玩!
”,第三除了输出了“今
天天气很好,我们出去玩!
”外,还输出了返回值“1。
echo()函数与print()函数两者的功能几乎完全一样,有一点不同就是echo()函数
无返回值,print()函数有返回值。
且echo()函数稍快于print()函数。
三、printf()函数
printf()函数输出格式化的字符串。
其中格式化字符串包括两部分内容:
一部分是
正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以“%”开始,
后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数
个数一样多,各参数之间用“,”分开,且顺序一一对应,否则将会出现意想不
到的错误。
常用类型转换符
%b整数转二进制
%c整数转ASCII码
%d整数转有符号十进制
%f倍精度转浮点
%o整数转八进制
%s整数转字符串
%u整数转无符号十进制
%x整数转十六进制(小写)
4
%X整数转十六进制(大写)
php
$a="今天";
$b=10;
printf("%s我买了%u本书",$a,$b);
?
>
浏览器输出的内容是:
今天我买了10本书
printf()函数有返回值,其返回值为字符串的长度。
php
$a="今天";
$b=10;
echoprintf("%s我买了%u本书",$a,$b);
?
>
此时浏览器输出的内容是:
今天我买了10本书16
其中“今天我买了10本书”为printf()函数格式化后的字符串,“16”为printf()函
数的返回值——字符串的长度16,需要通过echo才能输出。
四、sprintf()函数
sprintf()函数与printf()函数类似,printf()函数的返回值是字符串的长度,而sprintf()
函数的返回值侧是字符串的本身。
因此,sprintf()函数必须通过echo才能输出。
php
$a="今天";
$b=10;
echosprintf("%s我买了%u本书",$a,$b);
?
>
我们在浏览器中可以看到输出为今天我买了10本书,如果省略掉了echo,那么浏览
器中输出为空。
sprintf()和printf()的用法和C语言中的printf()非常相似。
我们经常用sprintf()将
5
十进制转换为其它进制。
如:
php
$a=12;
echosprintf("%b",$a);
?
>
在浏览器中输出为:
1100
即将12转为二进制为1100。
第四节PHP变量
变量用于存储值,比如数字、文本字符串或数组。
一旦设置了某个变量,我们就
可以在脚本中重复地使用它。
PHP的变量必须以$符开始,然后再加上变量名。
一、变量的命名
1.变量名必须以字母或者下划线"_"开头,后面跟上任意数量的字母、数字或者
下划线。
2.变量名不能以数字开头,中间不能有空格及运算符。
3.变量名严格区分大小写,即$UserName与$username是不同的变量。
4.为避免命名冲突,不允许使用与PHP内置的函数相同的名称。
5.在为变量命名时,尽量使用有意义的字符串。
$name;
$_password;
$book1;
二、变量的赋值
为变量赋值有两种方式:
传值赋值和引用赋值,这两种赋值方式在对数据的处理
上存在很大差别。
1、传值赋值
这种赋值方式使用“=”直接将一个变量(或表达式)的值赋给变量。
使用这种
赋值方式,等号两边的变量值互不影响,任何一个变量值的变化都不会影响到另
一个变量。
从根本上讲,传值赋值是通过在存储区域复制一个变量的副本来实现
的。
应用传值赋值的示例代码如下。
6
php
$a=33;
$b=$a;
$b=44;
echo"变量a的值为".$a."
";
echo"变量b的值为".$b;
?
>
在上面的代码中,执行“$a=33”语句时,系统会在内存中为变量a开辟一个
存储空间,并将“33”这个数值存储到该存储空间。
执行“$b=$a”语句时,系统会在内存中为变量b开辟一个存储空间,并将变
量a所指向的存储空间的内容复制到变量b所指向的存储空间。
执行“$b=44”语句时,系统将变量b所指向的存储空间保存的值更改为“44”,
而变量a所指向的存储空间保存的值仍然是“33”。
因此,我们在浏览器上看到的内容为:
变量a的值为33
变量b的值为44
2、引用赋值
引用赋值同样也是使用“=”将一个变量的值赋给另一个变量,但是需要在等号
右边的变量前面加上一个“&”符号。
实际上这种赋值方式并不是真正意义上的
赋值,而是一个变量引用另一个变量。
在使用引用赋值的时候,两个变量将会指
向内存中同一存储空间。
因此任何一个变量的变化都会引起另外一个变量的变
化。
应用引用赋值的示例代码如下。
php
$a=33;
$b=&$a;
$b=44;
echo"变量a的值为".$a."
";
echo"变量b的值为".$b;
?
>
7
在上面的代码中执行“$a=33”语句时,对内存进行操作的过程与传值赋值相
同,这里就不再介绍了。
执行“$b=&$a”语句后,变量b将会指向变量a所
占有的存储空间。
执行“$b=44”语句后,变量b所指向的存储空间保存的值变为“44”。
此时由
于变量a也指向此存储空间,所以变量a的值也会变为“44”。
因此,我们在浏览器上看到的内容为:
变量a的值为44
变量b的值为44
三、变量的作用域
在使用PHP语言进行开发的时候,我们几乎可以在任何位置声明变量。
但是变
量声明位置及声明方式的不同决定了变量作用域的不同。
所谓的变量作用域,指
的是变量在哪些范围内能被使用,在哪些范围内不能被使用。
PHP中的变量按
照作用域的不同可以分为局部变量和全局变量。
1、局部变量
局部变量是声明在某一函数体内的变量,该变量的作用范围仅限于其所在的函数
体的内部。
如果在该函数体的外部引用这个变量,则系统将会认为引用的是另外
一个变量。
应用局部变量的示例代码如下。
php
functionlocal(){
$a="“这是内部函数”";//在函数内部声明一个变量a并赋值
echo"函数内部变量a的值为".$a."
";
}
local();//调用函数local(),用来打印出变量a的值
$a="“这是外部函数”";//在函数外部再次声明变量a并赋另一个值
echo"函数外部变量a的值为".$a;
?
>
在浏览器中输出为:
函数内部变量a的值为“这是内部函数”
8
函数外部变量a的值为“这是外部函数”
2、全局变量
全局变量可以在程序的任何地方被访问,这种变量的作用范围是最广泛的。
要将
一个变量声明为全局变量,只需在该变量前面加上“global”关键字,不区分大
小写,也可以是“GLOBAL”。
使用全局变量,我们能够实现在函数内部引用函
数外部的参数,或者在函数外部引用函数内部的参数。
应用全局变量的示例代码如下。
在函数内部引用函数外部的参数:
php
$a="“这是外部函数”";//在外部定义一个变量a
functionlocal(){
global$a;//将变量a声明为全局变量
echo"在local函数内部获得变量a的值为".$a."
";
}
local();//调用函数local(),用于输出local函数内部变量a的值
?
>
在浏览器中输出为:
在local函数内部获得变量a的值为“这是外部函数”
在函数外部引用函数内部的参数:
php
functionlocal(){
global$a;//将变量a声明为全局变量
$a="“这是内部函数”";//在内部对变量a进行赋值
}
local();//调用函数local(),用于输出local函数内部变量a的值
echo"在local函数外部获得变量a的值为".$a;//在函数local外部输出变量
?
>
在浏览器中输出为:
在local函数外部获得变量a的值为“这是内部函数”
9
应用全局变量虽然能够使我们更加方便地操作变量,但是有的时候变量作用域的
扩大,会给开发带来麻烦,可能会引发一些预料不到的问题。
将一个变量声明为全局变量,还有另外一种方法,就是利用$GLOBALS[]数组。
3、静态变量
函数执行时所产生的临时变量,在函数结束时就会自动消失。
当然,因为程序需
要,函数在循环过程中不希望变量在每次执行完函数就消失的话,那么我们就要
采用静态变量,静态变量是指用static声明的变量,这种变量与局部变量的区别
是,当静态变量离开了它的作用范围后,它的值不会自动消亡,而是继续存在,
当下次再用到它的时候,可以保留最近一次的值。
应用静态变量的示例代码如下。
php
functionadd()
{
static$a=0;
$a++;
echo$a."
";
}
add();
add();
add();
?
>
在浏览器中输出为:
1
2
3
这段程序中,主要定义了一个函数add(),然后分3次调用add()。
如果用局部变量的方式来分工这段代码,3次的输出应该都是1。
但实际输出却
是1、2和3。
这是因为,变量a在声明的时候被加上了一个修饰符static,这就标志着a变量
10
在add()函数内部就是一个静态变量了,具备记忆自身值的功能,当第一次调用
add时,a由于自加变成了1,这个时候,a就记住自己不再是0,而是1了,
当我们再次调用add时,a再一次自加,由1变成了2,…。
由此,我们就可以
看出静态变量的特性了。
4、可变变量
可变变量是一种独特的变量,它可以动态的改变一个变量的名称,方法就是在该
变量的前面加一个变量符号“$”。
php
$a='hello';//普通变量
$$a='world';//可变变量,相当于$hello='world';
echo$a."
";
echo$$a."
";
echo$hello."
";
echo"$a{$$a}"."
";
echo"$a$hello";//这种写法更准确并且会输出同样的结果
?
>
在浏览器中输出为:
hello
world
world
helloworld
helloworld
5、预定义变量
预定义变量又称为超级全局变量数组,是PHP系统中自带的变量,不需要开发
者重新定义,它可让你的程序设计更加的方便快捷。
在PHP脚本运行时,PHP
会自动将一些数据放在超级全局数组中。
PHP预定义变量
变量作用
$GLOBALS[]储存当前脚本中的所有全局变量,其KEY为变量名,
11
VALUE为变量值
$_SERVER[]当前WEB服务器变量数组
$_GET[]存储以GET方法提交表单中的数据
$_POST[]存储以POST方法提交表单中的数据
$_COOKIE[]取得或设置用户浏览器Cookies中存储的变量数组
$_FILES[]存储上传文件提交到当前脚本的数据
$_ENV[]存储当前WEB环境变量
$_REQUEST[]
存储提交表单中所有请求数组,其中包括$_GET、
$_POST、$_COOKIE和$_SESSION中的所有内容
$_SESSION[]存储当前脚本的会话变量数组
四、变量的数据类型
数据类型是具有相同特性的一组数据的统称。
PHP早就提供了丰富的数据类型,
PHP5中又有更多补充。
数据类型可以分为3类:
标量数据类型、复合数据类
型和特殊数据类型。
标量类型(四种):
整型(int,integer)
浮点型(float,double,real)
布尔型(bool,boolean)
字符串(string)
复合类型(两种):
数组(array)
对象(object)
特殊类型(两种):
资源(resource)
空值(NULL)
1、整型(integer)
PHP中的整型指的是不包含小数部分的数据。
在32位操作系统中,整型数据的
有效范围在“-2147483648~+2147483647”之间。
整型数据可以用十进制(基
数为10)、八进制(基数为8,以0作为前缀)或十六进制(基数为16,以0x
12
作为前缀)表示,并且可以包含“+”和“-”。
整型数据的用法如下面代码所示。
php
$a=100;//十进制整型数据
$b=-034;//八进制整型数据
$c=0xBF;//十六进制整型数据
echo$a."
";
echo$b."
";
echo$c;
?
>
在浏览器中输出为:
100
-28
191
如果给定的数字超出了整型数据规定的范围,则会产生数据溢出。
对于这种情况,
PHP会自动将整型数据转化为浮点型数据。
2、浮点型(float)
浮点型数据就是通常所说的实数,可分为单精度浮点型数据和双精度浮点型数
据。
浮点数主要用于简单整数无法满足的形式,比如长度、重量等数据的表示。
浮点型数据的用法如下面代码所示。
php
$a=1.2;
$b=-0.34;
$c=1.8e4;//该浮点数表示1.8×104
echo$a."
";
echo$b."
";
echo$c;
?
>
在浏览器中输出为:
13
1.2
-0.34
18000
3、布尔型(boolean)
布尔型数据是在PHP4中开始出现的,一个布尔型的数据只有“true”和“false”
两种取值,分别对应逻辑“真”与逻辑“假”。
布尔型变量的用法如下面代码所
示。
在使用布尔型数据类型时,“true”和“false”两个取值是不区分大小写的。
也就是说“TRUE”和“FALSE”同样是正确的。
php
$a=true;
$b=false;
echo$a;
echo$b;
?
>
在浏览器中输出为:
1
当布尔值为“true”时,输出为1,当布尔值为“false”时,输出为空。
4、字符串(string)
字符串是一个字符的序列。
组成字符串的字符是任意的,可以是字母、数字或者
符号。
在PHP中没有对字符串的最大长度进行严格的规定。
在PHP中定义字
符串有3种方式:
使用单引号(')定义、使用双引号(")定义和使用定界符(<<<)
定义。
下面是一个使用字符串的例子。
php
$var="中国人";
echo"我是$var"."
";
echo'我是$var'.'
';
echo"今天天气很好!
"."
";
echo'我们去图书馆。
'."
";
echo<< 14 我是一个{$var} Eof; ? > 在浏览器中输出为: 我是中国人 我是$var 今天天气很好! 我是中国人 我是$var 今天天气很好! 我们去图书馆。 我是一个中国人 php中单引号和双引号的最大区别就是,双引号比单引号多一步解析过程。 双引 号会把双引号中的变量及转义字符解析出来。 而单引号则不管它的内容是什么, 都作为字符串输出。 在双引号中,中文和变量一起使用时,变量最好要用{}括起来,或变量前后的字 符串用双引号,再用“.”与变量相连。 php $str="年轻人"; echo"我们都是$str,应该多学习。 "." echo"我们都是{$str},应该多学习。 "." echo"我们都是".$str.",应该多学习。 "; ? > 在浏览器中输出为: 我们都是 我们都是年轻人,应该多学习。 我们都是年轻人,应该多学习。 第一句输出因为变量没用{}括起来,或者没有将字符串分开,再用“.”与变量相 连,因此变量及其后面的字符串不能输出,第二、三句输出都正常。 15 在一般情况下,我们尽量使用单引号,因为在理论上,单引号的运行速度要快些, 如果遇到有变量及转义字符需要解析时,我们才用双引号。 下面是一些常用的转义字符: 转移序列描述 \n换行符 \r回车符 \t制表符 \\反斜线 \$美元符 \"双引号 值得注意的是,“\n”,“\r”和“\t”三个转义字符在浏览器中不能反应出来, 只能在源文件看到。 PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西; 在PHP定界符中的任何特殊字符都不需要转义;PHP定界符中的PHP变量会 被正常的用其值来替换。 使用定界符应注意以下几点: (1)在<<<之后的字符Eof是自己定义的,随便什么都是可以的,但是结尾处 的字符一定要和他一样,他们是成对出现的; (2)结尾的Eof;,一定要另起一行,并且除了Eof;这个定界符结尾标识之外不 能有任何其他字符,前后都不能有,包括空格; (3)如果在定界符中间出现有PHP的变量,你只需要像在其它字符串中输出 一样写就行了,变量$var之所以要用{}括起来是要告诉PHP解析器这是一个 PHP变量,其实不用也是可以的,但是有可能会产生歧义。 5、数组(array) 数组是一系列相关的数据以某种特定的方式进行排列而组成的集合。 组成这个集 合的各个数据可以是基本数据类型,也可以是复合数据类型;可以是相同的数据 类型,也可以是不同的数据类型。 数组里的每一个数据元素都有其唯一的编号,称为索引。 索引用于指定数组中特 定的数据元素。 在有的语言中数组的索引必须是数字编号,而在PHP中,索引 可以是数字编号,也可以是字符串。 16 一个简单的PHP数组的应用示例代码如下。 php $network=array(1=>"how",2=>are,'three'=>"you"); echo$network[2]; echo$network[three]; ? > 在浏览器中输出为: areyou 6、对象(object) 对象是面向对象语言中的一个核心概念,对象就是类的一个实例。 在了解对象之 前我们先简单介绍一下什么是“类”。 在面向对象语言中,人们把各个具体事物 的共同特征抽取出来,形成一个一般的概念,也就构成了一个“类”。 在PHP中类的定义方式如下。 class类名{ 类里包含的内容; } 在PHP中,通过“new”关键字来实例化一个类并得到该类的一个对象。 类和 对象的应用示例如下面代码所示。 php classBook{ functiongetBookName($book_name){ return$book_name; } } $book1=newBook();//实例化一个Book类的对象book1 echo$book1->getBookName("PHP")." $book2=newBook();//实例化一个Book类的对象book2 echo$book2->getBookName("JSP"); ? > 17 在浏览器中输出为: PHP JSP 7、资源(resource) 资源是PHP提供的一种特殊数据类型,该数据类型用于表示一个PHP的外部 资源,比如一个数据库的访问操作,或者一个网络流的处理等。 虽然资源也是一 种数据类型,但是我们却不能直接对它进行操作。 PHP提供了一些特定的函数, 用于建立和使用资源。 比如“mysql_connect()”函数用于建立一个MySQL数 据的连接,“fopen()”函数用于打开一个文件等。 应用资源数据类型的示例代码如下。 php $cn=mysql_connect('localhost','root'); echoget_resource_type($cn)." $fp=fopen("foo","w"); echoget_r
";
";
";
";
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- php 教程 基础
![提示](https://static.bingdoc.com/images/bang_tan.gif)