文章目录
PHP语法
PHP 脚本在服务器上执行,然后将纯 HTML 结果发送回浏览器;可以放在文档中的任何位置;PHP 以 尖括号、问号、PHP<?php 开始,以 ?> 问号、尖括号结束:
<?php
//这里是我们要写的PHP代码
?>
PHP 文件的默认文件扩展名是 ".php"; 通常包含 HTML 标签和一些 PHP 脚本代码
echo 输出
echo 是在PHP里面最常用的一个输出、输出显示功能的命令。
可以让他显示任何可见的字符。
PHP实例
<!DOCTYPE html>
<html>
<body>
<?php
echo "Hello World!";
?>
</body>
</html>
运行效果:

PHP 中的注释
PHP的注释主要有:
单行注释(只注释一行)
// 双斜杠表示单行注释 有时也用 # 表示 但用的比较少,多用 //
多行注释(注释多行)
以 /* 开始 */结束 代表多行注释
注释实例:
/*
author:李子
date:2020-06-28
功能:这是一个php的多行注释的例子
*/
<?php
//声明一个string变量
$string ="欢迎学习php!";
//显示输出string字符串变量
echo $string;
?>

PHP变量
变量是用于存储数据和信息的"容器":
php变量的规范:
- PHP的变量必须以美元符
$开始,例如声明一个价格的变量:$price( $ 叫作美元符,英文单词:dollar) - 变量的首字母不能以数字开始
- 变量的名字区分大小写
- 变量不要用特殊符号、中文,_不算特殊符号
- 变量命名要有意义(别写xx,a,b,c这种 变量名,尽量用英文规范命名)
创建(声明)PHP 变量
PHP 是一门弱类型语言,没有声明变量的命令,变量在第一次赋值给它的时候被创建 不必向 PHP 声明该变量的数据类型,PHP 会根据变量的值,自动把变量转换为正确的数据类型。 而在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
<?php
$string="Hello world!";
$x=5;
$y=10;
?>
PHP 变量作用域
变量的作用域是脚本中变量可被引用/使用的部分
PHP 有四种不同的变量作用域:
- local
- global
- static
- parameter
局部和全局作用域(loacal / global)
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global关键字
<?php
header("Content-type:text/html;charset=utf-8");
$num=5; // 全局变量
function myDemo()
{
$num2=10; // 局部变量
echo "<p>测试函数内变量:<p>";
echo "变量 num 为: $num"; //输出错误 Notice: Undefined variable:
echo "<br>";
echo "变量 num2 为: $num2";
}
myDemo();
echo "<p>测试函数外变量:<p>";
echo "变量num 为: $num";
echo "<br>";
echo "变量 num2 为: $num2"; //输出错误 Notice: Undefined variable:
运行结果:

在以上实例中 myDemo() 函数定义了 $num和 $num2 变量。 $num变量在函数外声明,所以它是全局变量 , $num2变量在函数内声明所以它是局部变量。
当我们调用myDemo()函数并输出两个变量的值, 函数将会输出局部变量 $ynum2 的值,但是不能输出 $num 的值,因为 $num变量在函数外定义的,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global 关键字。在myDemo() 函数外输出两个变量的值,函数将会输出全局部变量 $num 的值,但是不能输出 $num2 的值,因为 $num2 变量在函数中定义,属于局部变量。
注 你可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内。
PHP global 关键字
global 关键字用于函数内访问全局变量
<?php
$n1=5;
$n2=10;
function myDemo(){
global $n1,$n2; //使用global关键字
$n2=$n1+$n2;
}
myDemo();
echo $n2; //输出10
?>
Static 作用域
当一个函数执行完成后,它的所有变量通常都会被删除清除。然而,有时候希望某个局部变量不要被删除。可以在第一次声明变量时使用 static 关键字:
<?php
function myDemo()
{
static $n=0;
echo $n;
$n++;
}
myDemo();
echo "<br/>";
myDemo();
echo "<br/>";
myDemo();
echo "<br/>";
myDemo();
?>
结果:

参数作用域
参数是通过调用代码将值传递给函数的局部变量。参数是在参数列表中声明的,作为函数声明的一部分:
<?php
function myDemo($num)
{
echo $num;
}
myDemo(type);
?>
结果:

PHP echo 和 print 语句
在 PHP 中有两个基本的输出方式: echo 和 print。
echo 语句
echo 是一个语言结构,使用的时候可以不用加括号,也可以加上括号: echo 或 echo()。
<?php
echo "<h1>PHP</h1>";
echo "Hello world!<br>";
echo "欢迎学习php!<br>";
echo "Welcome", " to", " studing";
?>
结果:

print 语句
print 跟echo同样是一个语言结构,可以使用括号,也可以不使用括号: print 或 print()。
<?php
$str = "<h1>PHP</h1>";
print $str;
print "Hello world!"."<br>";
print "欢迎学习php!"."<br>";
print "Welcome to studing php";
?>
结果:

注意:echo 和 print 区别:
· echo - 可以输出一个或多个字符串
· print - 只允许输出一个字符串,返回值总为 1
· echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
数据类型
PHP的数据类型包括以下几种,
- Integer(整型)
- String(字符串)
- Float(浮点型),
- Boolean(布尔型)
- Array(数组)
- Object(对象)
- NULL(空值)
查看数据类型的方式:
- gettype() 能够获得变量的类型
- var_dump() 输出变类型和值 (常用)
var_dump() 是一个函数。向括号()中间插入变量。这个函数,会打印出来数据类型,还会对应显示变量的长度和值。
整型(int)
<?php
$a = 6868; //十进制
var_dump($a);
echo "<br>";
$a = -10; // 负数
var_dump($a);
echo "<br>";
$a = 0x8C; // 十六进制数
var_dump($a);
echo "<br>";
$a = 047; // 八进制数
var_dump($a);
?>
结果:

字符串(String)
在PHP语言中声明字符串有三种方式:
- 用单引号声明
- 用双引号声明
- 用字界符声明(需要输入非常大段的字符串时使用)
<?php
$a = "Hello world!";
echo $a;
?>
结果:

浮点型(float)
所谓浮点类型,类似于数学里面的小数
<?php
//声明变量f的值为2323.3123
$f = 2323.3123;
echo $f;
echo "<br>";
//声明变量$fl 的值为0.8873
$fl = 0.4567;
var_dump($fl);
?>
结果:

布尔型(bool)
布尔类型就是:真和假
- true(真)
- false(假)
<?php
//声明一个变量为布尔
$buer = true;
//声明一个变量布尔值为false
$bool = false;
?>
数组(Array)
数组就是在一个变量中存储多个类型相同的值
<?php
$languages=array("php","java","c语言","python","C#");
var_dump($languages);
?>
结果:

对象(Object)
对象是存储数据和有关如何处理数据的信息的数据类型,在 PHP 中,必须明确地声明对象。
可以使用 class 关键词声明对象的类。类是包含属性和方法的结构
<?php
class myCars
{
var $name;
function myCars($name="奔驰") {
$this->name = $name;
}
function what_name() {
return $this->name;
}
};
?>
NULL(空值)
空(null)不是false,不是0,也不是空格,代表没有。
主要有以下三空情况会产生空(null)类型:
- 通过变量赋值明确指定为变量的值为NULL
- 一个变量没有给任何值
- 使用函数unset()将变量销毁掉
<?php
//声明变量为null
$n = null;
var_dump($n);
//var_dump显示输出变量$meiyou,看看结果是什么?
var_dump($null);
//声明一个变量$string的值为php的字符串
$string = 'php';
//unset销毁掉一个变量
unset($string);
var_dump($string);
?>
结果:

empty()
empty()可以向括号中间传入一个变量。这个变量的值如果为false或者为null的话,返回true
<?php
$string = null;
if(empty($string)){
echo '执行了真';
}else{
echo '行了假';
}
?>
结果:

isset()
isset()可以向括号中间传入一个或者多个变量,变量与变量间用逗号分开。只要有一个变量为null,则返回false。否则,则返回true。
<?php
$x = 10;
$y = false;
$i = 0;
$j = null;
$result = isset($x , $y , $i , $i);
var_dump($result);
?>
结果:

unset()这个函数的功能是毁掉变量。unset(变量)括号中间插入想要毁掉的变量名,这个变量就会被毁掉。
字符串变量
字符串变量用于存储并处理文本和包含有字符的值。
在创建字符串之后,我们就可以对它进行操作了。可以直接在函数中使用字符串,或者把它存储在变量中。
<?php
$string="Hello world!";
echo $string;
?>
结果:

PHP 并置运算符
在 PHP 中,只有一个字符串运算符,并置运算符.(点)用于把两个字符串值连接起来。
<?php
$str="大家好!";
$str2="我是程序媛!";
echo $str . " ++++" . $str2;
?>
结果:

strlen() 函数
strlen() 函数返回字符串的长度(字符数)。
注意:在UTF-8下 strlen 把中文字符算成 3 个字节,英文,空格,符号占 1 个字节。
<?php
$str="李";
echo strlen($str);
echo "<br>";
echo strlen("Hello world!");
?>
结果:

strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
<?php
echo strpos("Hello world!","world");
?>
结果:

world在第六个字符开始
注意:字符串中第一个字符的位置是 0,而不是 1
PHP常量
常量可以理解为:永久不变的值,常量值被定义后,在脚本的其他任何地方都不能被改变,有效的常量名以字符或下划线开头(常量名称前面没有 $ 符号)。常量名可以小写,但是通常大写
注释:与变量不同,常量贯穿整个脚本是自动全局的。
设置 PHP 常量
设置常量,使用 define() 函数 - 它使用三个参数:
- 首个参数定义常量的名称
- 第二个参数定义常量的值
- 可选的第三个参数规定常量名是否对大小写敏感。默认是 false。
<?php
define("STRING", "Welcome to PHP!");
echo STRING;
?>
结果:

常量是全局的,常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用
内置常量
| 常量名 | 说明 |
|---|---|
| LINE | 当前所在的行 |
| FILE | 当前文件在服务器的路径 |
| FUNCTIOIN | 当前函数名 |
| CLASS | 当前类名 |
| METHOD | 当前成员方法名 |
| PHP_OS | PHP运行的操作系统 |
| PHP_VERSION | 当前PHP的版本 |
| TRAIT | Trait 的名字,php5.4新加 |
| DIR | 文件所在的目录 |
| NAMESPACE | 当前命名空间的名称(区分大小写) |
PHP运算符
PHP算术运算符
| 运算符 | 名称 | 例子 | 结果 |
|---|---|---|---|
| + | 加法 | $a + $b | $a 与 $b 求和 |
| - | 减法 | $a - $b | $a 与 $b 的差数 |
| * | 乘法 | $a * $b | $a与 $b 的乘积 |
| / | 除法 | $a/ $b | $a与 $b的商数 |
| % | 取余也叫取模、求模 | $a % $by | $a 除 $b 的余数 |
<?php
$a=5;
$b=10;
echo ($a + $b)."<br/>";
echo ($a - $b)."<br/>";
echo ($a * $b)."<br/>";
echo ($a % $b)."<br/>";
?>
结果:

赋值运算符
我们在数学里面把 = (一个等号)叫作赋值运算符,即:把等号右边的值,赋值给等号左边的变量,左边的变量就为右边的值。
| 运算符 | 名称 | 例子 | 结果 |
|---|---|---|---|
| + | 加法 | $a + $b | $a 与 $b 求和 |
| - | 减法 | $a - $b | $a 与 $b 的差数 |
| * | 乘法 | $a * $b | $a与 $b 的乘积 |
| / | 除法 | $a/ $b | $a与 $b的商数 |
| % | 取余也叫取模、求模 | $a % $by | $a 除 $b 的余数 |
| 符号 | 举例 | 等价式 |
|---|---|---|
| += | $a += $b | $a = $a+ $b |
| -= | $a -= $b | $a = $a - $b |
| *= | $a *= $b | $a = $a * $b |
| /= | $a /= $b | $a = $a/ $b |
| %= | $a %= $b | $a = $a % $b |
| = | $a .= $b | $a = $a. $b |
字符串运算符
| 运算符 | 名称 | 例子 | 结果 |
|---|---|---|---|
| . | 串接 | $str1 = “Hello” $str2 = $str1 . " world!" | 现在 $str2 包含 “Hello world!” |
| .= | 串接赋值 | $str1 = “Hello” $str1 .= " world!" | 现在 $str1 包含 “Hello world!” |
递增/递减运算符
把自己加一或减一
| 符号 | 说明 |
|---|---|
| $a++ | 先赋值后加 |
| $a– | 先赋值后减 |
| ++$a | 先加后赋值 |
| –$a | 先减后赋值 |
比较运算符:
PHP 比较运算符用于比较两个值(数字或字符串):
| 运算符 | 名称 |
|---|---|
| == | 等于 |
| === | 全等(完全相同) |
| != | 不等于 |
| <> | 不等于 |
| !== | 不全等(完全不同) |
| > | 大于 |
| < | 小于 |
| >= | 大于或等于 |
| <= | 小于或等于 |
逻辑运算符
| 运算符 | 名称 |
|---|---|
| and | 与 |
| or | 或 |
| xor | 异或 |
| && | 与 |
|| | 或 |
| ! | 非 |
数组运算符
| 运算符 | 名称 | 例子 | 结果 |
|---|---|---|---|
| + | 联合 | $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。 |
PHP 数组运算符用于比较数组
三目运算符
三目运算符的格式:
(expr1)?(expr2):(expr3); //表达式1?表达式2:表达式3
if…else…elseif 语句
if 语句
if 语句用于在指定条件为 true 时执行代码。语法:
if(条件){
条件为真得时候执行
}
<?php
$age=19;
if($age<18){
echo "成年人";
}//输出成年人
?>
if. . .else 语句
使用 if…else 语句在条件为 true 时执行代码,在条件为 false 时执行另一段代码。语法:
if(条件){
条件为真得时候执行
} else {
条件为假得时候执行
}
<?php
$age=19;
if($age>18){
echo "成年人";
}else{
echo "未成年人"}//输出成年人
?>
if…elseif…else 语句
if....elseif...else 语句来选择若干代码块之一来执行。语法:
if(条件1){
条件1为真得时候执行
} elseif(条件2) {
条件2为真得时候执行
}
else{
条件不满足的时候执行
}
<?php
$age=19;
if($age>18){
echo "成年人";
}esleif($age=18){
echo "成年人"
}else{
echo "未成年人"}//输出成年人
?>
switch 语句
switch 语句用于根据多个不同条件执行不同动作。语法:
switch(整型表达式)
{
case 常量表达式1:语句1
case 常量表达式2:语句2
//……
case 常量表达式n-1:语句n-1
default:语句n
}
<?php
$w = date("w");
switch($w){
case 1 : echo "今天是星期一";break;
case 2 : echo "今天是星期二";break;
case 3 : echo "今天是星期三";break;
case 4 : echo "今天是星期四";break;
case 5 : echo "今天是星期五";break;
case 6 : echo "今天是星期六";break;
case 0 : echo "今天是星期日";break;
default : echo "你输入有误!";
}
?>
数组
数组可以存入多个不同类型的数据,是一个复合数据类型。可以使用array()来初始化数组,每个数组元素之间使用逗号分隔
<?php
header("Content-type:text/html;charset=utf-8"); //设置编码
$array=array(100,1.34,true,"php",);
echo '<pre>';
var_dump($array);
echo '<pre/>';
?>
结果:

关联数组
只要数组里面有一个为字符串的数组,就为关联数组。
声明关联数组必须要指定字符串的下标和必须要使用键值对应符。
<?php
$arr=[ //用[]创建数组
'name'=>'张三',
'age'=>'22',
'gender'=>'male'
];
echo "<pre>";
var_dump($arr) ;
echo"</pre>"
?>
结果:

注意:声明关联数组是 键名 => 值,在关联数组可以有索引数组的元素
count($变量)
函数用于返回数组的长度(元素数):
<?php
$name=Array('张三','李四','王五');
echo count($name);
?>
结果:

for循环遍历索引数组
for循环是一个单纯的计数型循环,而索引数组的下标为整型的数值。可以通过for循环来遍历索引数组。
<?php
$arr=Array('张三','李四','王五');
$arrlength=count($arr);
for($x=0;$x<$arrlength;$x++){
echo $arr[$x];
echo "<br/>";
}
?>
结果:

foreach循环数组
专门用来循环数组的。基本语法:
foreach( 要循环的数组变量 as [键变量 =>] 值变量){
//循环的内容
}
?php
$arr=[
'name'=>'张三',
'age'=>'22',
'gender'=>'male'
];
foreach($arr as $key=>$value){
echo $key.": ".$value."<br />";
};
?>
结果:

注意:$key 和$value并不是变量名必须得为这两个名字。命名可以为其他的,如 $k => $val是一样的。 清楚键赋值 给了哪个变量,值赋值给了另外的哪个变量就可以了。
foreach遍历连续的索引数组
<?php
header("Content-type:text/html;charset=utf-8"); //设置编码
$data = array(
0 => 'java',
10 => 'php',
20 => 'c#',
30 => 'python',
);
foreach($data as $k => $v){
echo $k . '+++++' . $v .'<br />';
}
?>
结果:

数组排序
数组中的元素可以按字母或数字顺序进行降序或升序排列。
- 升序:从小到大的顺序进行排序,如果是英文单词,那么按字母A-Za-z的顺序排序,如果是数字,那么按数字的大小进行排序。
- 降序:与升序相反
数组排序函数
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
sort()函数
`sort大多是用来排序数字索引数组的,如果把一个关联数组放到sort里排序,那么数组的键会丢失
<?php
$arr=array(10,2,81,45,Y,M,w,s,a,H,35,A,P);
sort($arr);
print_r($arr);
?>
结果:

asort()函数
使用数组的值进行排序
<?php
$age=array("张三"=>"25","李四"=>"18","王五"=>"23","赵六"=>"28");
asort($age);
print_r($age);
?>
结果:

ksort()函数
对键进行排序
<?php
$age=array("张三"=>"25","李四"=>"18","王五"=>"23","赵六"=>"28");
ksort($age);
print_r($age);
?>
结果:

PHP循环
-
while - 只要指定条件为真,则循环代码块
-
do…while - 先执行一次代码块,然后只要指定条件为真则重复循环
-
for - 循环代码块指定次数
-
foreach - 遍历数组中的每个元素并循环代码块
while 循环
while是一个布尔型循环,while(布尔判断)的值为true就执行大括号括起来的代码。如果为假就停出去,执行后续代码。语法:
while (条件为 true){
//执行的代码;
}
<?php
header("Content-type:text/html;charset=utf-8"); //设置编码
$n=1;
while($n<=5){
echo "这个数是:".$n ."<br/>";
$n++;
}
?>
结果:

do…while 循环
do…while与while的区别是,它们的值的检查时机不同。
do-while 不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)。而while循环会检查布尔判断区域,成立则执行。不成立则不执行。
语法:
do{
//执行的代码;
}while (条件为 true);
<?php
header("Content-type:text/html;charset=utf-8"); //设置编码
$n=1;
do {
echo "这个数字是:$n <br>";
$n++;
} while ($n<=5);
?>
结果与上面是一样的
For 循环
for 循环是 PHP 中的一种计数型循环,语法:
for(表达式1,表达式2,表达式3){
需要执行的代码
}
表达式1 是初始化赋值,可以同时赋值多个代码;表达示2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环;表达示3 在每次循环之后被求值。
<?php
header("Content-type:text/html;charset=utf-8"); //设置编码
for($n=1;$n<5;$n++){
echo $n."<br/>";
}
?>
结果:

foreach 循环
语法
foreach( 要循环的数组变量 as [键变量 =>] 值变量){
//循环的结构体
}
这是一个固定用法,将要循环的数组放进去,as 是一个固定的关键字,后面的键变量是可选的,随意定义一个变量,每次循环的时候,foreach这个语法会把键取出来赋值到键变量里面
<?php
header("Content-type:text/html;charset=utf-8"); //设置编码
$arr = array(
'str' => 'java',
'str2' => 'php',
'str3' => 'python',
);
foreach($arr as $key => $value){
echo $key . '=>' . $value . '<br />';
}
?>
结果:

本文全面介绍了PHP编程的基础知识,包括语法、变量、数据类型、运算符、控制结构、数组操作及函数使用,适合初学者快速掌握PHP编程技巧。
1224

被折叠的 条评论
为什么被折叠?



