PHP基本语法用法.docx
- 文档编号:29801510
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:26
- 大小:28.62KB
PHP基本语法用法.docx
《PHP基本语法用法.docx》由会员分享,可在线阅读,更多相关《PHP基本语法用法.docx(26页珍藏版)》请在冰豆网上搜索。
PHP基本语法用法
PHP基本语法用法
您无法在浏览器中通过查看源文档的方式来查看PHP的源代码-您只能看到PHP文件的输出,即纯粹的HTML。
这是因为在结果返回浏览器之前,脚本就已经在服务器执行了。
PHP标记
在之前的的例子中的PHP代码是以“
php”为开始,“?
>”为结束,这类似于所有的HTML标记,因为它们都是以小于号为开始,以大于号为结束的。
这些符号就叫做PHP标记。
PHP标记中有4中不同的风格供我们使用
*XML风格
php?
>
这是我们以后将使用的标记风格。
他是PHP推荐使用的标记风格,服务器管理员不能禁用这种风格的标记,因此可以保证正在所有的服务器上使用这种风格的标记,特别是编写用于不同服务器环境的应用程序时,这种标记风格尤为重要。
这种风格的标记可以在XML(可扩展置标语言)文档中使用,如果打算在站点中使用XML,就必须使用这种风格的标记。
*简短风格
?
>
这种标记风格是最简单的,但要使用这种标记字符,必须在配置文件中启用short_open_tag选项,或者启用短标记选项编译PHP.我们不推荐使用这种标记,因为虽然该标记风格是当前默认启用的,但是系统管理员偶尔会禁用它,它会干扰XML文档的声明。
*SCRIPT风格
这种标记风格是最长的,使用过javascript或vbscript的人就会熟悉这种风格
echo(“这是类似 JavaScript 及 VBScript 语法的 PHP 语言嵌入范例,指定脚本语言的方式”);
*ASP风格
这种标记风格和ASP或ASP.NET的标记风格相同。
如果在配置文件中启用了asp_tags选项就可以使用它
<%echo(“ASP的风格的标记”);%>
PHP输出语句
有两种通过PHP来输出文本的基础指令:
echo和print。
在上面的例子中,我们使用了echo语句来输出文本"HelloWorld"。
PHP注释
对于阅读代码的人来说,注释其实就相当于代码的解释和说明。
注释可以用来解释脚本的用途,脚本编写人,为什么要按如此的方法编写代码,上一次的修改时间等等,PHP支持C,C++和SHELL脚本风格的注释。
单行注释#或//
多行注释/**/
注意:
单行注释可以嵌套在多行注释里使用的但是多行注释是无法在嵌套的
php
echo "这是第一种例子。
\n"; // 本例是 C++ 语法的注释
/* 本例采用多行的
注释方式 */
echo "这是第两种例子。
\n";
echo "这是第三种例子。
\n"; # 本例使用 UNIX Shell 语法注释
?
>
C风格的注释在碰到第一个*/时结束。
小心不要嵌套C风格的注释,当注释大量代码时,可能犯该错误。
php
/*
echo "This is a test"; /* This comment will cause a problem */
*/
?
>
PHP数据类型
数据类型
四种标量类型:
∙boolean(布尔型):
表达了真值,可以为TRUE或FALSE。
要指定一个布尔值,使用关键字TRUE或FALSE。
两个都不区分大小写。
php
$foo = True; // assign the value TRUE to $foo
?
>
当转换为boolean时,以下值被认为是FALSE:
∙布尔值FALSE
∙整型值0(零)
∙浮点型值0.0(零)
∙空白字符串和字符串"0"
∙没有成员变量的数组
∙特殊类型NULL(包括尚未设定的变量)
注意:
-1和其它非零值(不论正负)一样,被认为是TRUE!
∙integer(整型)
integer为整数型别。
在32位的操作系统中,它的有效范围是-2,147,483,648到+2,147,483,647(2^31+符号位)。
要使用16进位整数可以在面加0x。
整型值可以用十进制,十六进制或八进制符号指定,前面可以加上可选的符号(-或者+)。
如果用八进制符号,数字前必须加上0(零),用十六进制符号数字前必须加上0x。
php
$a = 1234; // 十进制数
$a = -123; // 一个负数
$a = 0123; // 八进制数(等于十进制的 83)
$a = 0x1A; // 十六进制数(等于十进制的 26)
?
>
∙float(也叫浮点数,双精度数或实数)
浮点数为浮点数型别。
在32位的操作系统中,它的有效范围是1.7E-308到1.7E+308。
(自然底数e=2.71828183)
php
$a = 1.234;
$a = 1.2e3;
$a = 7E-10;
?
>
∙string(字符串)
即为字符串变量,无论是单一字符或数千字的字符串都是使用这个变量类型。
值得注意的是要指定字符串给字符串变量,要在头尾加上双引号(例如:
"这是字符串")。
在要让字符串换行时,可使用溢出字符,也就是反斜线加上指定的符号,若是\x加上二位数字,如\xFE即表十六进位字符,详见下表:
符号
意义
\"
双引号
\\
反斜线
\n
换行回车
\r
送出CR
\t
跳位(TAB)
定义字符串时,只有一种引号被视为定义符,即单引号或双引号。
于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。
这样,你就可以在双引号串中包含任何其他字符,甚至单引号。
下面的引号串都是合法的:
$s="I'mastudent";
$s='Iama“student”';
当PHP遇到与串的开头相对应的引号时,便认为已经到了字符串尾部,于是:
"Whydoesn't"this"work?
"
实际上被PHP语法分析器分成三个部分:
"Whydoesn't"——包含一个单引号的双引号串
this——多余的字符,分析器无法处理
"work?
"——普通字符串
上面的这个例子企图在双引号串中包含双引号,而分析器在遇到第二个双引号时便认为字符串结束了。
要达到包含引号的目的,必须分析器在遇到串内普通引号的时候忽略它的原意,我们在引号的前面加上一个反斜杠来告诉PHP:
这个引号是字符串的一部分,正确的表示方法是这样:
"Whydoesn't\"that\"work?
"
字串可以使用字串连接符(.)来连接,如:
$first_name='A';
$last_name='B';
$full_name=$first_name.''.$last_name;
注意:
$aa=5;
echo$aa.‘test
’;
echo"$aatest
";//在双引号中,变量名称被变量值替代
echo’$aatest
’;;?
>//在单引号中,变量名称或其他的文本都会不经修改而发送给浏览器
复合类型:
arrayobject
∙array(数组)
array为数组变量,可以是二维、三维或者多维数组,其中的元素也很自由,可以是string、integer或者double,甚至是array。
可以用array()语言结构来新建一个array。
它接受一定数量用逗号分隔的key=>value参数对。
key只能是整数和字符串
$a = array( 1 => 'one', 2 => 'two', 3 => 'three' );
$a = array( 'one','two', 'three' );默认下标是从0开始
$MyArray1 = array("a", "b", "c", "d");//一维数组
$MyArray2 = array(
"地支" => array("子", "丑", "寅", "卯"),
"生肖" => array("鼠", "牛", "虎", "兔"),
"数字" => array(1, 2, 3, 4)
);//二维数组
php
$arr = array(12 => true,"foo" => "bar", false);
echo $arr["foo"]; // bar
echo $arr[12]; // 1
?
>
结果:
bar1
php
$MyArray1=array("a","b","c","d");
echo$MyArray1[1];
print_r($MyArray1);
?
>
结果:
b(索引值从0开始)
数据类型强制转换:
php
$foo = 10; // $foo is an integer
$bar = (bool) $foo; // $bar is a boolean
?
>
允许的强制转换有:
∙(int),(integer)-转换成整型
∙(bool),(boolean)-转换成布尔型
∙(float),(double),(real)-转换成浮点型
∙(string)-转换成字符串
∙(array)-转换成数组
∙(object)-转换成对象
强制类型强制转换(参考:
PHP手册)
PHP中的类型强制转换和C中的非常像:
在要转换的变量之前加上用括号括起来的目标类型。
允许的强制转换有:
∙(int),(integer) -转换成整型
∙(bool),(boolean) -转换成布尔型
∙(float),(double),(real) -转换成浮点型
∙(string) -转换成字符串
∙(array) -转换成数组
∙(object) -转换成对象
注意在括号内允许有空格和制表符
还可以用settype(mixedvar,stringtype)进行强制转换.
1.强制转换为布尔值(bool)|(boolean)
要明示地将一个值转换成boolean,用(bool)或者(boolean)来强制转换。
但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制需要一个boolean参数时,该值会被自动转换。
当转换为boolean时,以下值被认为是FALSE:
布尔值FALSE
整型值0(零)
浮点型值0.0(零)
空白字符串和字符串"0"
没有成员变量的数组
没有单元的对象(仅适用于PHP4)
特殊类型NULL(包括尚未设定的变量)
所有其它值都被认为是TRUE(包括任何资源)。
?
php
var_dump((bool)"");//bool(false)
var_dump((bool)1);//bool(true)
var_dump((bool)-2);//bool(true)
var_dump((bool)"foo");//bool(true)
var_dump((bool)2.3e5);//bool(true)
var_dump((bool)array(12));//bool(true)
var_dump((bool)array());//bool(false)
var_dump((bool)"false");//bool(true)
?
>
2.强制转换为整形(int)|(integer)
要明示地将一个值转换为integer,用(int)或(integer)强制转换。
不过大多数情况下都不需要强制转换,因为当运算符,函数或流程控制需要一个integer参数时,值会自动转换。
还可以通过函数intval()来将一个值转换成整型。
a.从bool转换
b.从浮点数转换 取整,超出范围,结果不定
c.从字符串转换 参看字符串转换为数值
d.从其它类型转换 先换成bool值,再转换
决不要将未知的分数强制转换为integer,这样有时会导致意外的结果。
php
echo(int)((0.1+0.7)*10);//显示7
?
>
$str="123.456abc7"; //(int)123
echo(int)$str;
$str="abc123.456"; //(int)0
$str=true; //(int)1
$str=false; //(int)0
3.强制转换为浮点型(int)|(double)|(real)|doubleval()|floatval()|intval()
精度:
0.12345678901234 //double,real都一样
数据的丢失参字符串转换为数值
4.强制换为字符串(string)|strval()
可以用(string)标记或者strval()函数将一个值转换为字符串。
当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。
例如当使用echo()或者print()函数时,或者将一个变量值与一个字符串进行比较的时候。
∙布尔值TRUE将被转换为字符串"1",而值FALSE将被表示为""(即空字符串)。
这样就可以随意地在布尔值和字符串之间进行比较。
∙整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。
∙数组将被转换成字符串"Array",因此无法通过echo()或者print()函数来输出数组的内容。
请参考下文以获取更多提示。
∙对象将被转换成字符串"Object"。
如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。
如果希望得到该对象所依附的类的名称,请使用函数get_class()。
自PHP5起,如果合适可以用__toString()方法。
∙资源类型总是以"Resourceid#1"的格式被转换成字符串,其中1是PHP在运行时给资源指定的唯一标识。
如果希望获取资源的类型,请使用函数get_resource_type()。
∙NULL将被转换成空字符串。
正如以上所示,将数组、对象或者资源打印出来,并不能提供任何关于这些值本身的有用的信息。
请参阅函数print_r()和var_dump(),对于调试来说,这些是更好的打印值的方法。
可以将PHP的值转换为字符串以永久地储存它们。
这种方法被称为序列化,可以用函数serialize()来完成该操作。
如果在安装PHP时建立了WDDX支持,还可以将PHP的值序列化为XML结构。
4.强制转换为数组(array)
∙对于任何的类型:
整型、浮点、字符串、布尔和资源,如果将一个值转换为数组,将得到一个仅有一个元素的数组(其下标为0),该元素即为此标量的值。
∙如果将一个对象转换成一个数组,所得到的数组的元素为该对象的属性(成员变量),其键名为成员变量名。
∙如果将一个NULL值转换成数组,将得到一个空数组。
5.转换为对象(object)
如果将一个对象转换成对象,它将不会有任何变化。
如果其它任何类型的值被转换成对象,内置类stdClass的一个实例将被建立。
如果该值为NULL,则新的实例为空。
数组转换成对象将使键名成为属性名并具有相对应的值。
对于任何其它的值,名为scalar的成员变量将包含该值
6.转换为资源(无法转换)
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。
■PHP类型比较表(看手册附录P)
以下的表格显示了PHP类型和比较运算符在松散和严格比较时的作用。
该补充材料还和类型戏法的相关章节内容有关。
∙注意
∙HTML表单并不传递整数、浮点数或者布尔值,它们只传递字符串。
要想检测一个字符串是不是数字,可以使用is_numeric()函数。
∙在没有定义变量$x的时候,诸如if($x)的用法会导致一个E_NOTICE级别的错误。
所以,可以考虑用empty()或者isset()函数来初始化变量。
PHP常量
常量:
合法的常量名以字母(由大写字母组成和C语言一样)或下划线开始,后面跟着任何字母,数字或下划线。
常量和变量不同:
∙常量前面没有美元符号($);
∙常量只能用define()函数定义,而不能通过赋值语句;
∙常量可以不用理会变量范围的规则而在任何地方定义和访问;
∙常量一旦定义就不能被重新定义或者取消定义;
常量只能包含标量数据(boolean,integer,float和string)。
常量的范围是全局的。
不用管作用域就可以在脚本的任何地方访问常量
define()的功能可以让我们自行定义所需要的常量。
见下例
php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?
>
PHP变量
变量:
变量用一个美元符号($)后面跟变量名来表示。
变量名是区分大小写的。
一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字或下划线。
PHP是一门松散类型的语言(LooselyTypedLanguage)
在PHP中,不需要在设置变量之前声明该变量。
在上面的例子中,您看到了,不必向PHP声明该变量的数据类型。
根据变量被设置的方式,PHP会自动地把变量转换为正确的数据类型。
在强类型的编程语言中,您必须在使用前声明变量的类型和名称。
在PHP中,变量会在使用时被自动声明。
可变变量(variablevariable):
php$a='name';
$$a='张三';?
>
这个代码等价于:
$name=张三;
php
$a = "Hello";
$$a = "world";
echo "$a, $hello"; // Hello, world
echo "$a, {$a}"; // 也是 Hello, world
?
>
变量范围(作用域):
作用域是指在一个脚本中某个变量在哪些地方可以使用或可见。
全局变量(globalvariable):
php
$a = 1;$b = 2;
function Sum(){
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?
>输出是’3’
局部变量(localvariable):
任何用于函数内部的变量将被限制在局部函数范围内。
php
$a = 1; /* global scope */
function Test(){
($a=2;)
echo $a; /* reference to local scope variable */
}
Test();
?
>什么也不输出
静态变量(staticvariable):
在函数退出时,这个变量始终存在,不被销毁,但不能被其它函数使用,当再次进入该函数时,将保存上次的结果。
php
// 静态变量的例子
function myfunc() {
static $mystr;
$mystr.="哈";
echo $mystr."
\n";
}
myfunc(); // 哈
myfunc(); // 哈哈
myfunc(); // 哈哈哈
?
>
PHP运算符
使用操作符:
操作符是用来对数值和变量进行某种操作运算的符号。
学过的两个操作符:
赋值操作符(=)和字符串连接操作符(.)。
算数操作符:
例子
名称
结果
-$a
取反
$a的负值。
$a+$b
加法
$a和$b的和。
$a-$b
减法
$a和$b的差。
$a*$b
乘法
$a和$b的积。
$a/$b
除法
$a除以$b的商。
$a%$b
取余数
$a除以$b的余数。
(“/”)总是返回浮点数,即使两个运算数是整数(或由字符串转换成的整数)也是这样。
注:
取模$a%$b在$a为负值时的结果也是负值。
php
$a = 8;
$b = 2;
$c = 3;
echo $a+$b."
\n";
echo $a-$b."
\n";
echo $a*$b."
\n";
echo $a/$b."
\n";
echo $a%$c."
\n";
?
>
注意:
(*)作为乘法操作符,而不是常规的乘法符号。
除法操作符同理。
字符串运算符:
有两个字符串运算符。
第一个是连接运算符(“.”),它返回其左右参数连接后的字符串。
第二个是连接赋值运算符(“.=”),它将右边参数附加到左边的参数后。
php
$a = "Hello ";
$b = $a . "World!
"; // now $b contains "Hello World!
"
$a = "Hello ";
$a .= "World!
"; // now $a contains "Hello World!
"
?
>
赋值运算符:
基本的赋值运算符是“=”。
一开始可能会以为它是“等于”,其实不是的。
它实际上意味着把右边表达式的值赋给左边的运算数。
赋值运算表达式的值也就是所赋的值。
也就是说,“$a=3”的值是3。
php
$a = ($b = 4) + 5; // $a 现在成了 9,而 $b 成了 4。
?
>
括号提高子表达式的优先级
复合赋值操作符:
增加程序的执行效率。
符号
使用方法
等价于
意义
=
$a=$b
$a=$b
将右边的值连到左边
+=
$a+=$b
$a=$a+$b
将右边的值加到左边
-=
$a-=$b
$a=$a-$b
将右边的值减到左边
*=
$a*=$b
$a=$a*$b
将左边的值乘以右边
/=
$a/=$b
$a=$a/$b
将左边的值除以右边
%=
$a%=$b
$a=$a%$
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PHP 基本 语法 用法