1.PHP语言常用语法参考一览表
目录
1.PHP标记
PHP 脚本以 <?php 开头,以 ?> 结尾:
<?php........?>
2.分号
分号的作用是用来分隔语句的。
<?php
echo "<p>Order processed at ".date('H:i, jS F Y')."</p>";
?>
3.注释
// 这是单行注释
# 这也是单行注释
/*
这是多行注释块
它横跨了
多行
*/
4.标识符
- 任意长度,有任何字母、数字、下划线组成;
- 不能以数字开头;
- 区分大小写,函数名称例外;
5.数据类型
四种标量类型:
- bool(布尔型):true或flase,不区分大小写。
- int(整型)
- float(浮点型,也称作 double)
- string(字符串)
四种复合类型:
- array(数组)
- object(对象)
- callable(可调用)
- iterable(可迭代)
最后是两种特殊类型:
- resource(资源)
- NULL(无类型):NULL 类型唯一可能的值就是
null
,表示一个变量没有值。
为了确保代码的易读性,还有一些伪类型:
- mixed(混合类型)
- void(无类型)
6.变量
变量用美元符$后跟标识符来表示。
$a = 1;
变量的作用范围由定义此变量的上下文背景决定。
6.1Global关键字
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。如果函数内部需要使用,需使用global关键字调用。
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
6.2LOCAL关键字
函数内部声明的变量拥有 LOCAL 作用域,只能在函数内部进行访问。
6.3static关键字
通常,当函数完成/执行后,会删除所有变量。不过,有时我需要不删除某个局部变量。实现这一点需要更进一步的工作。
要完成这一点,请在您首次声明变量时使用 static 关键词:
<?php
function myTest() {
static $x=0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
注意:该变量仍然是函数的局部变量。
7.常量
常量名称与变量的区别就是前面没有 $ 符号,常量的作用域是全局的,它们可以在函数内外使用。
请使用 define() 函数 – 它使用三个参数:
- 首个参数定义常量的名称
- 第二个参数定义常量的值
- 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。
define('TIREPRICE',100);
8.内置超级全局变量
内置超级全局变量的作用域是PHP脚本的任何地方。完整列表如下:
- $GLOBALS,所有全局变量数组;
- $_SERVER,服务器环境变量数组;
- $_GET,通过GET方式传递的变量数组;
- $_POST,通过POST方式传递的变量数组;
- $_COOKIE,cookie变量数组;
- $_FILES,与文件有关的变量数组;
- $_ENV,环境变量数组;
- $_REQUEST,所有用户输入的变量数组;
- $_SESSION,会话变量数组。
9.魔术常量
名称 | 说明 |
---|---|
__LINE__ | 文件中的当前行号。 |
__FILE__ | 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。 |
__DIR__ | 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__) 。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增) = |
__FUNCTION__ | 函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。 |
__CLASS__ | 类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar )。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。 |
__TRAIT__ | Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar )。 |
__METHOD__ | 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。 |
__NAMESPACE__ | 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。 |
10.数组
10.1索引数组
索引是自动分配的(索引从 0 开始):
$cars=array("porsche","BMW","Volvo");
10.2关联数组
关联数组是使用您分配给数组的指定键的数组。
$age=array("Bill"=>"35","Steve"=>"37","Elon"=>"43");
10.3多维数组
多维数组指的是包含一个或多个数组的数组。
$cars = array
(
array("Volvo",22,18),
array("BMW",15,13),
array("Saab",5,2),
array("Land Rover",17,15)
);
11.操作符
11.1算术操作符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
+ | 加法 | $x + $y | $x 与 $y 求和 |
– | 减法 | $x – $y | $x 与 $y 的差数 |
* | 乘法 | $x * $y | $x 与 $y 的乘积 |
/ | 除法 | $x / $y | $x 与 $y 的商数 |
% | 取余 | $x % $y | $x 除 $y 的余数 |
11.2字符串操作符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
. | 串接 | $txt1 = “Hello” $txt2 = $txt1 . ” world!” | 现在 $txt2 包含 “Hello world!” |
.= | 串接赋值 | $txt1 = “Hello” $txt1 .= ” world!” | 现在 $txt1 包含 “Hello world!” |
11.3赋值操作符
赋值 | 等同于 | 描述 |
---|---|---|
x = y | x = y | 右侧表达式为左侧运算数设置值。 |
x += y | x = x + y | 加 |
x -= y | x = x – y | 减 |
x *= y | x = x * y | 乘 |
x /= y | x = x / y | 除 |
x %= y | x = x % y | 余数 |
11.4比较操作符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
== | 等于 | $x == $y | 如果 $x 等于 $y,则返回 true。 |
=== | 全等(完全相同) | $x === $y | 如果 $x 等于 $y,且它们类型相同,则返回 true。 |
!= | 不等于 | $x != $y | 如果 $x 不等于 $y,则返回 true。 |
<> | 不等于 | $x <> $y | 如果 $x 不等于 $y,则返回 true。 |
!== | 不全等(完全不同) | $x !== $y | 如果 $x 不等于 $y,或它们类型不相同,则返回 true。 |
> | 大于 | $x > $y | 如果 $x 大于 $y,则返回 true。 |
< | 小于 | $x < $y | 如果 $x 小于 $y,则返回 true。 |
>= | 大于或等于 | $x >= $y | 如果 $x 大于或者等于 $y,则返回 true. |
<= | 小于或等于 | $x <= $y | 如果 $x 小于或者等于 $y,则返回 true。 |
11.5逻辑操作符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
and | 与 | $x and $y | 如果 $x 和 $y 都为 true,则返回 true。 |
or | 或 | $x or $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
xor | 异或 | $x xor $y | 如果 $x 和 $y 有且仅有一个为 true,则返回 true。 |
&& | 与 | $x && $y | 如果 $x 和 $y 都为 true,则返回 true。 |
|| | 或 | $x || $y | 如果 $x 和 $y 至少有一个为 true,则返回 true。 |
! | 非 | !$x | 如果 $x 不为 true,则返回 true。 |
11.6递增/递减操作符
运算符 | 名称 | 描述 |
---|---|---|
++$x | 前递增 | $x 加一递增,然后返回 $x |
$x++ | 后递增 | 返回 $x,然后 $x 加一递增 |
–$x | 前递减 | $x 减一递减,然后返回 $x |
$x– | 后递减 | 返回 $x,然后 $x 减一递减 |
11.7数组操作符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
+ | 联合 | $x + $y | $x 和 $y 的联合(但不覆盖重复的键) |
== | 相等 | $x == $y | 如果 $x 和 $y 拥有相同的键/值对,则返回 true。 |
=== | 全等 | $x === $y | 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。 |
!= | 不相等 | $x != $y | 如果 $x 不等于 $y,则返回 true。 |
<> | 不相等 | $x <> $y | 如果 $x 不等于 $y,则返回 true。 |
!== | 不全等 | $x !== $y | 如果 $x 与 $y 完全不同,则返回 true。 |
11.8类型操作符
instanceof操作符允许检查一个对象是否为特定类的实例。
class sampleClass{};
$myObject = new sampleClass();
if ($myObject instanceof sampleClass)
echo "myObject is an instance of sampleClass";
12.条件语句
- if 语句 – 如果指定条件为真,则执行代码
- if…else 语句 – 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
- if…elseif….else 语句 – 根据两个以上的条件执行不同的代码块
- switch 语句 – 选择多个代码块之一来执行
13.循环语句
- while – 只要指定条件为真,则循环代码块
- do…while – 先执行一次代码块,然后只要指定条件为真则重复循环
- for – 循环代码块指定次数
- foreach – 遍历数组中的每个元素并循环代码块
14.函数
函数声明以单词 “function” 开头:
function functionName() {
被执行的代码;
}
注意:函数名对大小写不敏感。
可以通过参数向函数传递信息。参数类似变量。
参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可。
下面的例子中的函数有一个参数($fname)。当调用 familyName() 函数时,我们同时要传递一个名字(例如 Bill),这样会输出不同的名字,但是姓氏相同:
<?php
function familyName($fname) {
echo "$fname Zhang.<br>";
}
familyName("Li");
familyName("Hong");
familyName("Tao");
familyName("Xiao Mei");
familyName("Jian");
?>
15.命名空间
在PHP中,命名空间用来解决在编写类库或应用程序时创建可重用的代码如类或函数时碰到的两类问题:
- 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
- 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
虽然任意合法的PHP代码都可以包含在命名空间中,但只有以下类型的代码受命名空间的影响,它们是:类(包括抽象类和traits)、接口、函数和常量。
命名空间通过关键字namespace
来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间,除了一个以外:declare关键字。
<?php
namespace MyProject;
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/php/phpbasic/2259.html