php 基础语法
文章目录
PHP错误级别
- Notic
编译时语法解析错误 - WARNING
运行时警告(非致命错误) - Error
致命的运行时错误,一般是不可恢复的情况
会打断php代码执行
php注意事项
- 在PHP 文件中,可以与HTML 和JavaScript 混编。
- 开始标记
<?php
表示进入PHP 模式,结束标记?>
,标识退出PHP 模式。 - PHP 模式之外的内容会被作为字符输出到浏览器中。
- HTML 或JavaScript 对于PHP 来说就是纯文本字符串。
- PHP代码是从上而下执行的
因为js在浏览器执行,php在服务端执行所有如果在在线的网站能够看到phpinfo 页面,说明存在敏感信息泄露漏洞
测试之间php环境是否安装完成编辑一个.php后缀的文件用记事本打开输入
<?php
phpinfo();
?>
来测试
基础语法格式
-
; php的每条语句是以分号结尾
<?php phpinfo(); ?>
-
// 双斜杠为语句注释
//phpinfo();
-
/**/ 为多行注释
<?php /* $username=5; phpinfo(); */ ?>
-
空白字符
-
空格使用来表达
-
TAB制表符使用\t来表达
-
回车换行用\r\n来表示
空白字符在php中是无关紧要的,可以将一个语句展开成任意行,或者紧缩在一行,空格与空行的合理运用可以增强代码的清晰性与可读性
-
变量
变量名是严格区分大小写的
变量名由字母、数字、下划线组成,并且不能以数字开头,也不能包含空白字符、特殊字符等其他字符。
变量声名
变量定义
在PHP语言中使用$来定义变量
$user; //定义user变量
变量初始化
在PHP语言中是使用=来对变量进行赋值来完成初始化
$user ='xl';
变量的释放
在PHP语句中通过unset(要释放的变量);来释放指定的变量 如果变量释放之后再使用会显示未定义
$user=xl;
unset($user);
可变变量
可变变量,一个变量的名字可以动态的设置和使用。$$
是php 的特性,也是产生php 中变量覆盖漏洞的原因之一
如果定义了两个变量
<?php
$user="passwd";
$passwd="123456";
echo $$user;
?>
他会输出passwd 的值这就说明 u s e r 就变成了 p a s s w d 字符串但是前面还有一个 user就变成了passwd字符串但是前面还有一个 user就变成了passwd字符串但是前面还有一个那么就变成了$passwd所有就输出了123456
举例
<?php
$chara ="username";
$username = "xl";
$xl = "I am from China!";
$$username = "i love php!";
$$$chara = "super";
echo $xl;
?>
变量的类型
查看字符类型使用var_dump(要查看的变量);
bool类型
bool类型是只有true和false
$a = true;
$b = false;
int
整型,存储整数。
$age = 15;
$score = 80;
字符串string类型
字符串定义时可以使用单引号和双引号来定义
$user='xl';
$user="xl";
在php中字符串是使用.来拼接的
$user = 'xl';
$interesting = 'sleep ';
echo $user.$interesting;
用单引号和双引号定义字符串的区别
在PHP语句中通常可以使用{}作为占位符以在输出或定义时可以直接在{}里使用变量
单引号
- 单引号定义的字符串中不能包含单引号,如果包含,需要转义
\'
。 - 单引号中的变量不会被识别
双引号
- 双引号中可以包含单引号,双引号中包含双引号,需要转义
\"
。 - PHP 会解析双引号之间的变量,最好用
{}
将变量名括起来。
常量
常量就是不变的在PHP中常量被定义后是无法被修改的或者说无法取消定义
常量的作用域是全局的
定义常量
对于定义常量使用define()函数来定义
常量定义时一般为大写
define("USER", "XL");
echo USER;
预定义常量
预定义常量
PHP 已经定义好了,可以直接使用的常量,一般代表特殊的含义。魔术常量是预定义常量中比较特殊的一类。
常量名 作用
__FILE__ 显示当前文件所在的完整的路径以及文件名
__LINE__ 显示当前当前行号
__FUNCTION__ 当前的函数名
__CLASS__ 当前的类名
__METHOD__ 当前对象的方法名
PHP_OS 操作系统类型
PHP_VERSION 当前PHP 的版本
DIRECTORY_SEPARATOR 目录的分隔符 \为windows系统 /为linux系统
运算符
算数运算符
$a=10;
$b=3; //定义两个变量
例子 名称 结果
-$a 取反 $a 的负值
$a + $b 加法 $a和$b 的和
$a - $b 减法 $a 和$b 的差
$a * $b 乘法 $a 和$b 的积
$a / $b 除法 $a 除以$b 的商
$a % $b 取模,取余 $a 除以$b 的余数
++ $a 前加 $a 的值加一,然后返回$a
$a++ 后加 返回$a,然后将$a 的值加一
--$a 前减 $a 的值减一, 然后返回$a
$a-- 后减 返回$a,然后将$a 的值减一
字符串运算符
字符串拼接是通过.运算符来实现的
$a='xl';
$b='12';
echo $a.$b;
执行结果为
比较运算符
通过执行运算返回true或者false
例子 说明
$a == $b 等于
$a === $b 全等不仅值相等并且数据类型相同
$a != $b 不等
$a <> $b 不等
$a !== $b 不全等
$a < $b 小于
$a > $b 大于
$a <= $b 小于等于
$a >= $b 大于等于
逻辑运算符
and 和 && 为与运算符 两边表达式必须全为真才能执行
or 和 || 为或运算 两边表达式至少一个为真就会执行
xor 为异或运算 相同为假不同为真
! 非运算
三目运算符
变量a和变量b做比较如果a>b则执行变量c
反之则执行变量d
$a>$b? $c:$d
反引号
定义一个变量变量里的内容 dos或bash命令在打印时用``反引号将该变量包起那么就会执行本机的dos或bash命令(取决于操作系统)
$cmd="ipconfig";
echo `$cmd`;
执行结果为
@
可以屏蔽表达式可能发生的错误
$a='xl';
$b='12';
echo @$c;
虽然c未定义但不回报错