PHP 教程

  本PHP教程以《PHP 程序设计》第二版为基础,从实用的角度出发,帮助PHP爱好者学习和使用PHP。

以下是预备编写的内容的参考目录,后期的编写将参考此目录来进行,并根据实际情况进行适当的调整:

  • PHP简介
  • PHP 语言基础
    • 词法结构
    • 数据类型
    • 变量
    • 表达式与操作符
    • 流控制语句
    • 包含代码
    • 在 Web 页面中嵌入 PHP

 

 

 

 

 

PHP 简介

  PHP 是一种为创建 HTML 内容而设计的简单但是功能强大的语言。PHP 最初被设计用于创建动态的 Web 内容,时至今日,PHP 已经是互联网 Web 应用中用得最多的程序语言。

PHP 语言基础

  本文简要介绍 PHP 语言的核心内容,包含数据类型、变量、操作符和流控制语句等基本内容。PHP 吸收了很多其它编程语言(如 Perl 和 C)的优点,如果你有这些语言编程经验的话,PHP 会很容易上手。如果 PHP 是你学习的第一种编程语言,也不用担心,因为你也可以从这里开始,从零开始逐步构建起你的 PHP 知识体系。

大小写

在 PHP 中,所有内置函数、关键词(如 echo, while, class 等),以及用户定义的类名和函数名都是不区分大小写的。因此,以下三行代码的效果是完全相同的。

<?php
echo("hello, world");
ECHO(
"hello, world");
EcHo(
"hello, world");
?>

不过为了方便阅读及与他人协同合作,在编写PHP代码时,通常会使用小写

对于内置的函数、关键词,以及用户定义的类名和函数名是不区分大小写的,不过,PHP 变量区分大小写,$name, $NAME, $NaME 表示的是三个不同的。

语句与分号

  “语句”是指完成某项任务的PHP代码,它可以是一个简单的变量赋值,也可以是一个复杂的循环。通常在编写 PHP 代码时,每一个简单“语句”单独占用一行,语句最后添加分号表示分隔。

<?php
echo "Hello, world";  // 这条语句输出 "Hello, world"
phpinfo();  // 这条语句调用 phpinfo() 函数
$a 1;  // 这条语句为变量赋值

// 下面是一个if判断语句
if ($a == 1) {
  echo 
'a 等于 1';
}
?>

  PHP 使用分号来分隔简单的语句,使用大括号将多个语句组合成一个代码块,如条件语句或循环,在右括号的后面不需要使用分号

<?php
if ($needed) {
  echo 
"We must have it!";  // 简单语句需要使用分号(;)作为结尾
}  // 大括号用于将语句组合成代码块,右括号的后面不需要添加分号
?>

注释

  注释为阅读代码的人提供更多的信息,但 PHP 在执行时会忽略注释的内容。PHP 使用三种风格的注释。在使用 IDE 进行程序编写时,注释与代码使用了不同的颜色,非常容易识别。

Shell 风格的注释 - Shell 风格的注释是一种行注释,使用 # 作为标识,#开始处到本行的结束内容被视为标识

<?php
$a 
1# 单行注释通常与代码放在同一行

# 对代码块的注释通常放在代码块之前
if ($a == 1) {
  echo 
'a 等于 1';
}
?>

C++风格注释 - C++ 风格注释也是一种行注释,使用 // 作为标识。

<?php
// 这是 C++ 风格的注释
$a 1;
?>

C风格注释 - C语言风格的注释通常用作块注释,与前面提到的 Shell风格和C++风格的单行注释相比,C语言风格的注释使用 /* 作为开头,以 */ 作为结束,在它们之间的所有内容都被视为注释。

<?php
$a 
1;
$b 2;
$c 3;

/* 在注释符之间的内容都被视为注释,即使是PHP代码,也不会被执行
$a = $a + $b;
$b = $b + $c;
$c = $a + $c;
*/

echo $a;
echo 
$b;
echo 
$c;

?>

标识符

  标识符(identifier)只是一个名字。在PHP里,标识符用来命名变量、函数、常量和类。标识符的每一个字符必须是ASCII字母(大写或小写)、下划线(_)或在 ASCII 0x7F 和 ASCII 0xFF 之间的任意字符。在首字符之后,这些字符和数字0-9都是合法的。

变量名

  PHP 中,变量名总是以一个美元符号($)开头,并且区分大小写。下面是一些合法的变量名

$bill
$head_count
$MaximumForce
$I_HEART_PHP
$_underscore
$_int

  下面是一些不合法的变量名

$not vaild  # 变量名中只能使用字母、数字和下划线,不能使用空格
$|  # 变量名中不能使用|
$3wa  # 变量首字母不能是数字

函数名

  函数名不区分大小写,以下是一些合法的函数名

tally
list_all_users
deleteTclFiles
LOWERCASE_IS_FOR_WIMPS
_hide

  函数名不区分大小写,以下函数名表示相同的函数

howdy  HoWdY  HOWDY  HOWdy howdY

类名

  类名遵循PHP标识符的标准规则并且不区分大小写,下面是一些合法的类名:

Person
account

关键词

  关键词(keyword)(或预留字 reserved word)是PHP语言为其核心功能而预留的单词,在对变量、函数、类或常量命名时,不能使用和关键字相同的名字,PHP核心关键词表中列出了PHP的关键字。关键字不区分大小写

PHP核心关键词表:http://lugir.com/php/documentation/keywords-and-reserved-word.html

数据类型

  PHP 提供了8种值的类型(或称数据类型)。

  • 标量型(单值):整型、浮点数、字符串和布尔型;
  • 两种是复合型(集合):数组和对象;
  • 特殊类型:资源和NULL

  下面对数字、布尔、资源和NULL进行介绍。字符串、数组和对象都是较大的主题,将在之后单独讨论。

整型

  整型都是整数,例如1、12和256。可接受值的范围根据具体的平台而定,但是一般是从 -2 147 483 648 到 +2 147 483 647。

  整型直接量可以使用十进制、八进制或十六进制表示。十进制以不以0开头的数字序列表示,可以以正号(+)或负号(-)开头,如果开头没有符号,则表示是正数。下面是十进制整数的例子:

1998
-641
+33

  八进制数由一个前导0和一个0-7的数字序列组成。和十进制一样,八进制可能有正负号前缀。下面是一些八进制值的例子和它们等值的十进制数

0755  // 十进制数 493
+010  // 十进制数 8

  十六进制数以 0x 开头,接着是数字(0-9)或字母(A-F)的序列。字母可以使用大写或小写,但一般使用大写,十六进制也可以包含符号。

0xFF     // 十进制数 255
0x10     // 十进制数 16
-0xDAD1  // 十进制数 -56017

  使用 is_int() 函数(或它的别名 is_integer()),可以测试一个值是否为整型

<?php
if (is_int($x)) {
  
// $x 是一个整型,执行相关代码
  // ...
}
?>

浮点型

  浮点型(通常叫做实数)用十进制数字表示。和整型一样,它的范围限制由机器情况而定。PHP浮点数和C编译器中双精度型的范围一样。通常,允许1.7E-308 和 1.7E+308 之间,精确到15位数字。

  PHP 认可两种不同格式的浮点数书写方式,即普通写法与科学记数法

// 普通格式
3.14
0.017
-7.1

// 科学记数法
0.314E1  // 0.314*10的1次方, 即3.14
17.0E-3  // 17.0*10的-3次方, 即0.017

  浮点型的值仅仅是数的近似表示。例如,很多系统里,3.5实际上被表示为 3.4999999999。这意味着着代码时要避免假定浮点数是完全精确的,例如避免使用 == 直接比较两个浮点数的值。一般的做法是将小数点移动若干位后,将浮点数转为整型再进行比较

if (int($a * 1000) == int($b * 1000)) {
  // 将两个变量的小数点移动三位,并转换为整型后再进行比较
}

  使用 is_float() 函数(或它的别名 is_real())来测试一个值是否是浮点数:

<?php
if (is_float($x)) {
  
// $x 是一个浮点型,执行相关代码
  // ...
}
?>

未完待续…… :D