语法
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);
?>
1 条评论
不错不错,我喜欢看