主页
软件技术
返回
PHP基本语法详解

您无法在浏览器中通过查看源文档的方式来查看 PHP 的源代码 - 您只能看到 PHP 文件的输出,即纯粹的 HTML。这是因为在结果返回浏览器之前,脚本就已经在服务器执行了。

PHP标记

在之前的的例子中的PHP代码是以“<?php”为开始,“?>”为结束,这类似于所有的HTML标记,因为它们都是以小于号为开始,以大于号为结束的。这些符号就叫做PHP标记。

PHP标记中有4中不同的风格供我们使用

*XML风格

<?php      ?>

这是我们以后将使用的标记风格。他是PHP推荐使用的标记风格,服务器管理员不能禁用这种风格的标记,因此可以保证正在所有的服务器上使用这种风格的标记,特别是编写用于不同服务器环境的应用程序时,这种标记风格尤为重要。这种风格的标记可以在XML(可扩展置标语言)文档中使用,如果打算在站点中使用XML,就必须使用这种风格的标记。

*简短风格

<?    ?>

这种标记风格是最简单的,但要使用这种标记字符,必须在配置文件中启用short_open_tag选项,或者启用短标记选项编译PHP.我们不推荐使用这种标记,因为虽然该标记风格是当前默认启用的,但是系统管理员偶尔会禁用它,它会干扰XML文档的声明。

*SCRIPT风格

这种标记风格是最长的,使用过javascript或vbscript的人就会熟悉这种风格

<script language=“php”>
echo (“这是类似 JavaScript 及 VBScript 语法 的 PHP 语言嵌入范例,指定脚本语言的方式”);
</script>

*ASP风格

这种标记风格和ASP或ASP.NET的标记风格相同。如果在配置文件中启用了asp_tags选项就可以使用它

<% echo (“ASP的风格的标记”); %>

PHP输出语句

有两种通过 PHP 来输出文本的基础指令:echo 和 print。在上面的例子中,我们使用了 echo 语句来输出文本 "Hello World"。

PHP注释

对于阅读代码的人来说,注释其实就相当于代码的解释和说明。注释可以用来解释脚本的用途,脚本编写人,为什么要按如此的方法编写代码,上一次的修改时间等等,PHP支持C,C++和SHELL脚本风格的注释。

单行注释    #  或 //

多行注释  /*  */

注意 : 单行注释可以嵌套在多行注释里使用的  但是多行注释是无法在嵌套的

<?php
echo "这是第一种例子。 "; // 本例是 C++ 语法的注释
/* 本例采用多行的
注释方式      */
echo "这是第两种例子。 ";
echo "这是第三种例子。 "; # 本例使用 UNIX Shell 语法注释

?>

C 风格的注释在碰到第一个 */ 时结束。小心不要嵌套 C 风格的注释,当注释大量代码时,可能犯该错误。

<?php
/*
echo "This is a test"; /* This comment will cause a problem */
*/
?>

PHP数据类型

数据类型

四种标量类型:

l boolean(布尔型):表达了真值,可以为 TRUE 或 FALSE。

要指定一个布尔值,使用关键字 TRUE 或 FALSE。两个都不区分大小写。

<?php$foo=True;//assignthevalueTRUEto$foo?>  


当转换为 boolean 时,以下值被认为是 FALSE:

l 布尔值 FALSE

l 整型值 0(零)

l 浮点型值 0.0(零)

l 空白字符串和字符串 "0"

l 没有成员变量的数组

l 特殊类型 NULL(包括尚未设定的变量)

注意:-1 和其它非零值(不论正负)一样,被认为是 TRUE!

l 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)
?>

l float(也叫浮点数,双精度数或实数)

浮点数为浮点数型别。在 32 位的操作系统中,它的有效范围是 1.7E-308 到 1.7E+308。(自然底数e=2.71828183)

<?php
$a = 1.234;
$a = 1.2e3;
$a = 7E-10;
?>

l string(字符串)

即为字符串变量,无论是单一字符或数千字的字符串都是使用这个变量类型。值得注意的是要指定字符串给字符串变量,要在头尾加上双引号 (例如: "这是字符串")。在要让字符串换行时,可使用溢出字符,也就是反斜线加上指定的符号,若是 x 加上二位数字,如 xFE 即表十六进位字符,详见下表:

符号

意义

"

双引号

反斜线

 

换行回车

 

送出 CR

 

跳位 (TAB)



定义字符串时,只有一种引号被视为定义符,即单引号或双引号。于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析。这样,你就可以在双引号串中包含任何其他字符,甚至单引号。下面的引号串都是合法的:

$s = "I' m a student";
$s = ' I am a “student” ';

当PHP遇到与串的开头相对应的引号时,便认为已经到了字符串尾部,于是:

"Why doesn't "this" work?"

实际上被PHP语法分析器分成三个部分:

"Why doesn't "——包含一个单引号的双引号串
this——多余的字符,分析器无法处理
" work?" ——普通字符串

上面的这个例子企图在双引号串中包含双引号,而分析器在遇到第二个双引号时便认为字符串结束了。要达到包含引号的目的, 必须分析器在遇到串内普通引号的时候忽略它的原意,我们在引号的 前面加上一个反斜杠来告诉PHP:这个引号是字符串的一部分,正确的表示方法是这样:

"Why doesn't "that" work?"

字串可以使用字串连接符(.)来连接,如:

$first_name = 'A';
$last_name = 'B';
$full_name = $first_name . ' ' . $last_name;

注意:<? $aa=5;

echo $aa. ‘test<br/>’;

echo "$aa  test<br/>";//在双引号中,变量名称被变量值替代

echo ’$aa  test<br/>’;;?>//在单引号中,变量名称或其他的文本都会不经修改而发送给浏览器

复合类型:array  object

l 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;//$fooisaninteger$bar=(bool)$foo;//$barisaboolean?>  


允许的强制转换有:

l (int),(integer) - 转换成整型

l (bool),(boolean) - 转换成布尔型

l (float),(double),(real) - 转换成浮点型

l (string) - 转换成字符串

l (array) - 转换成数组

l (object) - 转换成对象

强制类型强制转换 (参考:PHP手册)

PHP 中的类型强制转换和 C 中的非常像:在要转换的变量之前加上用括号括起来的目标类型。

允许的强制转换有:

l (int),(integer)            - 转换成整型

l (bool),(boolean)           - 转换成布尔型

l (float),(double),(real)    - 转换成浮点型

l (string)                   - 转换成字符串

l (array)                    - 转换成数组

l (object)                   - 转换成对象

注意在括号内允许有空格和制表符
还可以用settype ( mixed var, string type )进行强制转换.

1.强制转换为布尔值 (bool)|(boolean)

要明示地将一个值转换成 boolean,用 (bool) 或者 (boolean) 来强制转换。但是很多情况下不需要用强制转换,因为当运算符,函数或者流程控制需要一个 boolean 参数时,该值会被自动转换。

当转换为 boolean 时,以下值被认为是 FALSE:

布尔值 FALSE
整型值 0(零)
浮点型值 0.0(零)
空白字符串和字符串 "0"
没有成员变量的数组
没有单元的对象(仅适用于 PHP 4)
特殊类型 NULL(包括尚未设定的变量)
所有其它值都被认为是 TRUE(包括任何资源)。



加强人本管理提高监理服务质量
监视器里学问多 如何挑选合适的LED监视器
时评:立体绿化推行 助力宜居城市建设
城市建筑中文化内涵的选择与表达
城乡一体化的国际经验
流水施工实例:网络计划优化
工伤保险的“三忌”、“三化”和“三要”
2015年一级建造师《管理与实务》精华辅导资料(45)
信息发布:名易软件http://www.myidp.net