语法
PHP 脚本可以放在文档中的任何位置,以 <?php 开始,以 ?> 结束
,默认文件扩展名是 ".php"。,文件通常包含 HTML 标签和一些 PHP 脚本代码。

<?php
    // PHP 代码
?>

实例:

<!DOCTYPE html>
<html>
<body>

<h1>My first PHP page</h1>

<?php
    echo "Hello World!";
?>

</body>
</html>

注释:

  • // 单行注释
  • / ... / 多行注释

变量:

  • 变量以 $ 符号开始,后面跟着变量的名称
  • 变量名必须以字母或者下划线字符开始
  • 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
  • 变量名不能包含空格
  • 变量名是区分大小写的($y 和 $Y 是两个不同的变量)

变量作用域:

  • 定义在函数外部的就是全局变量,它的作用域从定义处一直到文件结尾。
  • 函数内定义的变量就是局部变量,它的作用域为函数定义范围内。
  • 函数之间存在作用域互不影响。
  • 函数内访问全局变量需要 global 关键字或者使用 $GLOBALS[index] 数组

注:在 php 中函数是有独立的作用域,所以局部变量会高于全局变量,即使局部变量中没有全局变量相同的变量,也会被覆盖

输出:

  • echo - 可以输出一个或多个字符串
  • print - 只允许输出一个字符串,返回值总为 1
  • var_dump() -输出展示代码内容,结构与类型。该函数作可以窥探所有内容的类型,以及内部信息。该函数是调试、打印、输出、展示类型函数

注:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

EOF:
PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法:

  • 必须后接分号,否则编译通不过。 EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
  • 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
  • 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
  • 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义

实例:

<?php
$name="runoob";
$a= <<<EOF
        "abc"$name
        "123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>

注:

1.以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。
2.开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。
3.位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接

常量:
1、define('name','value',case_insensitive)
2、const name = 'value'

  • 常量是一个简单值的标识符。该值在脚本中不能改变。
  • 一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

注:常量在整个脚本中都可以使用。

该函数有三个参数:

  • name:必选参数,常量名称,即标志符。
  • value:必选参数,常量的值。
  • case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
   <?php
    // 区分大小写的常量名
    define("GREETING", "欢迎访问 Runoob.com");
    echo GREETING;    // 输出 "欢迎访问 Runoob.com"
    echo '<br>';
    echo greeting;   // 输出 "greeting",但是有警告信息,表示该常量未定义
    ?>
    /* ----------- */
    <?php
    // 不区分大小写的常量名
    define("GREETING", "欢迎访问 Runoob.com", true);
    echo greeting;  // 输出 "欢迎访问 Runoob.com"
    ?>

数据类型:

  • String(字符串)
  • Integer(整型)
  • Float(浮点型)
  • Boolean(布尔型)
  • Array(数组)
  • Object(对象)
  • NULL(空值)

类型比较:

  • == :相等,只比较值
  • ===:全等,比较值和数据类型

运算符:

  • x + y 加
  • x - y 减
  • x * y 乘
  • x / y 除
  • x % y 取余

逻辑运算符:

  • || :或,$a || $b$a$b有一个为true,为true,否则为false
  • &&:与, $a && $b$a$b都为true,为true,否则为false
  • !:非,! $b$b为false,结果为true,否则为false,(取反)

条件控制语句:
if 语句 - 在条件成立时执行代码

if (条件)
{
    条件成立时要执行的代码;
}

if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码

if (条件)
{
条件成立时执行的代码;
}
else
{
条件不成立时执行的代码;
}

if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块

if (条件)
{
    if 条件成立时执行的代码;
}
elseif (条件)
{
    elseif 条件成立时执行的代码;
}
else
{
    条件不成立时执行的代码;
}

switch 语句 - 在若干条件之一成立时执行一个代码块

switch (n)
{
case label1:
    如果 n=label1,此处代码将执行;
    break;
case label2:
    如果 n=label2,此处代码将执行;
    break;
default:
    如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}

三元运算符:如果条件表达式为真,执行问号(?)后的表达式,否则执行冒号(:)后的表达式

<条件表达式> ? <表达式1> : <表达式2>
<条件表达式> ? : <表达式2> // 如果条件表达式为真,值为条件表达式,否则执行表达式2
// 合并运算符:如果表达式成立,则将变量2的值赋给变量1,否则给它赋问号后的值
变量1 = 变量2 ? ? 'newValue'
$t = $timer ?? '0'

数组:array();
数值数组 - 带有数字 ID 键的数组
// 自动分配 ID 键(ID 键总是从 0 开始)

$cars=array("Volvo","BMW","Toyota");

// 人工分配 ID 键:

$cars[0]="Volvo";
$cars[1]="BMW";
$cars[2]="Toyota";

关联数组 - 带有指定的键的数组,每个键关联一个值

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

多维数组 - 包含一个或多个数组的数组
// 二维数组:

$cars = array
(
    array("Volvo",100,96),
    array("BMW",60,59),
    array("Toyota",110,100)
);

数组操作(数组函数):

  • count():返回数组的长度
  • array_merge($arr1,$arr2); 两个数组组成一个数组
    但是要注意这个函数组装后,键值重新被定义,若不想键值重新定义,可以直接使用 $arr = $arr1 +$arr2
    ;也可以达到两个数组组委一个数组的目的
  • array_rand();函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组;即一个参数返回随机键名,存在第二个参数且大于1,返回多个随机键名组成的数组
    注意:第二个参数不能大于第一个参数的总数
  • array_keys();返回由键名组成的数组
  • array_key_exists(key,array);数组中书否存在指定的键
  • array_search();查找某一键值并返回该值的键,但是只能返回一个,若存在多个,返回最后一个的键值
  • array_unique();去掉以为数组中重复的值
  • join(‘拆分方式’,array)、implode(‘拆分方式’,array);拆分数组为字符串
  • reset(array);输出目前数组指针对应的值
  • array_shift();删除数组中的第一个元素(red),并返回被删除的元素:
  • array_pop();函数删除数组中的最后一个元素。
  • end();查看数组的最后一个;可以使用另外一个方法;$arr[count($arr)-1];
  • current();查看当前值
  • in_array;是否在数组内
  • is_array;是否存在数组
  • array_value();重新分配key
  • array_slice();从数组中取出一段 从0开始
  • array_splice();从数组移除选定的元素 并用新元素发取代
  • unset(); 删除数组
  • shuffle() ;随即重新排列数组
  • array_flip(); 交换键名和键值
  • array_clumn(); 返回数组某一栏的值
  • array_reduce(); 发送数组值到自定义函数返回字符串

数组排序:

  • sort() - 对数组进行升序排列
  • rsort() - 对数组进行降序排列
  • asort() - 根据关联数组的值,对数组进行升序排列
  • ksort() - 根据关联数组的键,对数组进行升序排列
  • arsort() - 根据关联数组的值,对数组进行降序排列
  • krsort() - 根据关联数组的键,对数组进行降序排列

循环:
while - 只要指定的条件成立,则循环执行代码块

while (条件)
{
    要执行的代码;
}

do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环

do
{
    要执行的代码;
}
while (条件);

for - 循环执行代码块指定的次数

for (初始值; 条件; 增量)
{
    要执行的代码;
}

foreach - 根据数组中每个元素来循环代码块

foreach ($array as $value)
{
    要执行代码;
}

函数:

  • 用户定义的函数声明以单词 "function" 开头
  • 函数名能够以字母或下划线开头(而非数字)
  • 函数名对大小写不敏感
  • 函数名应该能够反映函数所执行的任务

定义/创建函数:

function functionName() {
  被执行的代码;
}
functionName(); // 调用函数

函数参数:

  • 可以通过参数向函数传递信息。参数类似变量。
  • 参数被定义在函数名之后,括号内部。您可以添加任意多参数,只要用逗号隔开即可 如需使函数返回值,请使用 return 语句

实例:

<?php
function sum($x,$y) {
  $z=$x+$y;
  return $z;
}

echo "5 + 10 = " . sum(5,10) . "<br>";
echo "7 + 13 = " . sum(7,13) . "<br>";
echo "2 + 4 = " . sum(2,4);
?>


最后修改:2023 年 06 月 13 日
如果觉得我的文章对你有用,请随意赞赏