【CyberSecurityLearning 45】PHP基础+变量、运算符、流程控制语句
目录
PHP概述
PHP运行环境安装
Web原理简述
PHP 基本语法
特点:
指令分隔符 [;]
注释(和C语言类似)
简单的PHP语句
PHP语法错误:
变量
变量的声明
初始化
赋值
[=]
引用赋值 $c =&$a
变量的释放
变量的命名
可变变量
变量的类型
常量
预定义常量
运算符
算术运算符(见代码)
逻辑运算符
运算符优先级
比较运算符
赋值运算符
算术赋值运算符 ¶
其他赋值运算符 ¶
其他运算符
流程控制语句
顺序执行
分支执行
单向分支
双向分支
多向分支
循环语句
while
do while
for(好!)
特殊流程控制语句
九九乘法表
PHP概述
- PHP是一门编程语言,PHP主要目的是允许网络开发人员快速编写动态页面
- 简单来说PHP主要被用于开发各种类型的网站程序
- 细化点说PHP可以用于收集表单数据,生成动态网页,字符串处理,动态输出图像,处理服务端文件,与数据库交互,会话跟踪,处理XML文件,支持大量的网络协议,服务器端的其他相关操作!
- PHP是解释型脚本语言不需要事先编译,运行在服务器端!
- PHP可以运行在windows、linux等各种操作系统上!
专门用于开发网站的
脚本后缀名.php 可以与HTML语言进行混编,脚本后缀依然是.php(还可以在PHP代码中输出HTML语言)
解释型语言,不要编译直接运行
弱类型
PHP运行需要环境:
Windows: phpstudy
Linux: 单独安装(不是系统自带的)
PHP运行环境安装
Apache+PHP+MySQL是PHP比较流行的生存环境
LAMP
Web原理简述
1.打开浏览器
2.输入URL地址
3.显示网站内容
PHP 基本语法
PHP 语言标记
开始标记 <?php
结束标记 ?>
特点:
1、<?php?>这之间就表示进入PHP模式,在开始和结束处之外的内容都会被PHP解析器忽略
2、可以直接嵌入到html代码中,并且可以嵌入到html代码中的任何地方
3、在一个html文档中可以嵌入任意多个PHP标记
4、文件末尾的PHP代码结束标记可以不要,在一些情况下省略掉更好
指令分隔符 [;]
一个php语句必须(建议)要用分号结束
注释(和C语言类似)
单行注释 //
多行注释 /* */
注意:
php代码中注释,不会显示在浏览器的源代码中。
php运行环境是服务器,我们浏览器看到的是PHP引擎运行PHP代码后的执行结果
在我们PHP引擎解释PHP代码的时候,注释被自动过滤掉了。
为什么HTML代码客户端可以看到源代码?
因为HTML运行环境是浏览器!
简单的PHP语句
1、phpinfo();
2、echo 用于输出简单的变量
3、var_dump(); 用于输出变量值及其变量类型
PHP语法错误:
Error 会结束脚本执行
Warning 只提示,不影响执行
Notice 只提示,不影响执行
变量
变量的声明
不需要声明变量,但要初始化
初始化
给变量初次赋值,或者变量的默认值
赋值
[=]
根据实验说明:PHP脚本是顺序执行的
引用赋值 $c =&$a
相当于给$a起了一个别名,$c值的改变,$a也随之改变
<?php
$a=10;
$b=$a;
$b=$b+1;
echo $a; //10
echo "|";
echo $b; //11
echo "<hr />";
$c=&$a; //$a和$c实际上指向的是同一块内存空间(相当于给$a起了一个别名)
$c=$c+1;
echo $a; //11
echo "|";
echo $c; //11
?>
变量的释放
unset()
<?php
echo "This is var.php";
echo "<hr />";
echo "<span style='color:pink;background-color:blue'>123</span>";
?>//一个页面中可以插入多个PHP标记(不能混用)
<hr /><?php
//PHP在使用变量的时候不需要进行变量声明,
//如果一个变量没有初始化,内存中就没有这个变量。
echo $name;
$name="AJEST";
echo "<br />";
echo $name;
echo "<br />";
unset($name); //释放了变量
echo $name;?>
变量的命名
@ 以$符号开头
@ 严格区分大小写
@ 字母|数字|下划线,不能以数字开头
$name1
$my_name
$_my_name
$1_name 错误
@ 尽量不要使用php关键字作为变量名
可变变量
<?php
$name="hello";
$$name="world";
echo $name; //输出hello
echo "<br />"
echo $$name; //world
echo $hello;//实际上$hello是$$name
?>
变量的类型
布尔类型
true false,其他均会被认为true
以下所有内容会被当做false
布尔值false
0
浮点型0.0
空白字符串和字符串0
没有成员的数组
NULL
var_dump(); 用于输出变量值及其变量类型
int 存储整数
float 存储小数 3.14
字符串 string
字符串的定义:
@ ' '
@ " "
@ 定界符
注意:
@单引号定义的字符串中出现单引号要转义[\]
@单引号定义的字符串中,[$] 符号原样输出
@双引号定义的字符串中,[$] 是变量的开始,整体变量名用{ }括起来
@单双引号定义的字符串中输入的特殊字符包括 [ ' , " , $ ...]需要转义
@定界符开始和结束后面不能有任何字符包括空白字符和注释
数组
对象 不讲
常量
不变的量
定义 define("NAME","GGG");
直接使用即可
预定义常量
常量名 常量值
__FILE__ 当前的文件名(文件名带路径)
__LINE__ 当前的行数
__FUNCTION__ 当前的函数名
__CLASS__ 当前的类名
__METHOD__ 当前的对象的方法名
PHP_OS UNIX或WINNT等
PHP_VERSION 当前的PHP服务器的版本
DIRECTORY_SEPARATOR \或/ 根据操作系统决定目录的分隔符
运算符
算术运算符(见代码)
取模就是取余数。
逻辑运算符
php手册
非 !
与 and 或者 &&
或 or ||
异或 xor 不同为真,相同为假
与运算的优先级高于或运算。
赋值运算符的优先级高于逻辑运算符
运算符优先级
括号的使用,哪怕在不是必要的场合下,通过括号的配对来明确标明运算顺序,而非靠运算符优先级和结合性来决定,通常能够增加代码的可读性。
下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。
结合方向 | 运算符 | 附加信息 |
---|---|---|
不适用 |
clone new
|
clone 和 new |
右 |
**
|
算术运算符 |
不适用 |
++ -- ~ (int) (float) (string) (array) (object) (bool) @
|
类型、递增/递减 |
左 |
instanceof
|
类型 |
不适用 |
!
|
逻辑运算符 |
左 |
* / %
|
算术运算符 |
左 |
+ - .
|
算术运算符 和 字符串运算符 |
左 |
<< >>
|
位运算符 |
无 |
< <= > >=
|
比较运算符 |
无 |
== != === !== <> <=>
|
比较运算符 |
左 |
&
|
位运算符 和 引用 |
左 |
^
|
位运算符 |
左 |
|
|
位运算符 |
左 |
&&
|
逻辑运算符 |
左 |
||
|
逻辑运算符 |
右 |
??
|
null 合并运算符 |
左 |
? :
|
三元运算符 |
右 |
= += -= *= **= /= .= %= &= |= ^= <<= >>= ??=
|
赋值运算符 |
不适用 |
yield from
|
yield from |
不适用 |
yield
|
yield |
不适用 |
print
|
|
左 |
and
|
逻辑运算符 |
左 |
xor
|
逻辑运算符 |
左 |
or
|
逻辑运算符 |
比较运算符
例子 | 名称 | 结果 |
---|---|---|
$a == $b | 等于 |
true ,如果类型转换后 $a 等于 $b。
|
$a === $b | 全等 |
true ,如果 $a 等于 $b,并且它们的类型也相同。
|
$a != $b | 不等 |
true ,如果类型转换后 $a 不等于 $b。
|
$a <> $b | 不等 |
true ,如果类型转换后 $a 不等于 $b。
|
$a !== $b | 不全等 |
true ,如果 $a 不等于 $b,或者它们的类型不同。
|
$a < $b | 小与 |
true ,如果 $a 严格小于 $b。
|
$a > $b | 大于 |
true ,如果 $a 严格大于 $b。
|
$a <= $b | 小于等于 |
true ,如果 $a 小于或者等于 $b。
|
$a >= $b | 大于等于 |
true ,如果 $a 大于或者等于 $b。
|
$a <=> $b | 太空船运算符(组合比较符) | 当$a小于、等于、大于 $b时 分别返回一个小于、等于、大于0的 int 值。 |
当两个操作对象都是 数字字符串, 或一个是数字另一个是 数字字符串, 就会自动按照数值进行比较。 此规则也适用于 switch 语句。 当比较时用的是 ===
或 !==
, 则不会进行类型转换——因为不仅要对比数值,还要对比类型。
比较参与运算的单元是否相同,相同为真,不同为假
<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> trueswitch ("a") {
case 0:echo "0";break;
case "a": // never reached because "a" is already matched with 0echo "a";break;
}
?>
赋值运算符
算术赋值运算符 ¶
例子 | 等同于 | 操作 |
---|---|---|
$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 | 指数 |
其他赋值运算符 ¶
例子 | 等同于 | 操作 |
---|---|---|
$a .= $b | $a = $a . $b | 字符串拼接 |
其他运算符
$a= 10>20 ? 10:20(三元运算符)
`` 将字符串当作命令执行(不是单引号,是Tab上面的那个键)
@ 屏蔽提示,警告
<?php
$a=10<20?10:20;
echo $a;
echo "<hr />";
echo `ping www.baidu.com`;
?><hr /><?php
echo `whoami`;
echo "<hr />";
echo @$name; //直接写$name会报Notice,在前面加一个@,屏蔽警告、提示
?>
流程控制语句
顺序执行
PHP代码执行的时候,依次顺序执行
分支执行
单向分支
if(判断条件){执行语句块}
双向分支
if(判断条件){执行语句块1}else{语句块2}
多向分支
if(判断条件){执行语句块1}elseif{语句块2}elseif{语句块3}....
elseif
switch
case
default
case后面的语句是不需要用大括号括起来的!
循环语句
while
当满足条件时,执行
计数器,变量
判断条件
do while
先执行再判断
for(好!)
特殊流程控制语句
break; 跳出本层循环
break 2; 跳出两层循环
continue; 跳过本次循环
die() 结束本次脚本执行
exit() 结束本次脚本执行
九九乘法表
【CyberSecurityLearning 45】PHP基础+变量、运算符、流程控制语句相关推荐
- java跳转控制语句有哪些_Java语言基础学习之流程控制语句和跳转控制语句实例分析...
本文主要向大家介绍了Java语言基础学习之流程控制语句和跳转控制语句实例分析,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.流程控制语句 在一个程序执行的过程中,各条语句的执行顺 ...
- java基础起步三-流程控制语句中的条件语句
文章目录 流程控制语句结构: 1. 顺序结构 2. 分支结构 3. 循环结构 分支结构语法: 1. 单分支结构; 2. 双分支结构 3. 多分支条件语句: 选择结构 语法: 注意: 输入输出案例 练习 ...
- javascript基本语法(输入输出语句,变量常量,数据类型,运算符,流程控制语句,数组,函数)
javascript javascript介绍 JavaScript 是一种客户端脚本语言.运行在客户端浏览器中,每一个浏览器都具备解析 JavaScript 的引擎. 脚本语言:不需要编译,就可以被 ...
- python语言流程控制语句的格式_慢步学python,编程基础知识,流程控制语句if
慢步业余学python编程,今天休息继续分享python编程知识. 面向过程编程,重要的是程序的流程,今天说说流程控制语句if. 在我们高中数学中就有流程图的学习,只是没有真正应用起来而已,办公软件也 ...
- JS基础02之流程控制语句
if-else-if多分支语句 练习案例1 说明:输入学生的成绩并根据成绩给出相应的等级, 等级评定标准: 成绩在90–100(包含)之间,显示 A,成绩在80–90(包含)之间, 显示 B,成绩在7 ...
- python两个for循环流程图_Python基础2:流程控制语句 while / for循环
[ while 循环 ] 如果要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+ ...
- Javascript 基础—变量 运算符
经过找工作笔试的洗礼,感觉自己js语法方面掌握的不是很系统,今天来梳理下--变量以及运算符. 基础篇 和C语言的不同点:是一种弱类型语言,申明变量时不需要指定类型:变量名的命名方法也有不同:简单类型种 ...
- VBScript基础,变量,函数,流程
文章目录 1 VBScript基础 1.1 Option Explicit 2 函数和过程 2.1 过程 2.2 函数 2.3 调用过程和函数 2.3.1 过程调用 2.3.2 函数调用 2.4 退出 ...
- python基础-变量运算符(3)
一.注释 注释就是对代码的解释和说明.目的是为了让别人和自己很容易看懂.为了让别人一看就知道这段代码是做什么用的.正确的程序注释一般包括序言性注释和功能性注释.序言性注释的主要内容包括模块的接口.数据 ...
- decode语句不能再嵌套_自学C++基础教程【流程控制语句】(for、while 、do while 语句 )...
for语句 for语句是C++语言所提供的一种功能广泛的循环语句. 下图为for语句的标准形式: 表达式1:通常用于给循环变量赋初值,一般是赋值表达式. 表达式2:通常用于设立循环条件,一般为关系表达 ...
最新文章
- centos7 harbor 单机搭建
- 【Android 逆向】Frida 框架 ( 安装 frida 12.7.5 | 安装 frida-tools 5.1.0 | PC 端 frida 与 安卓模拟器端 frida-server )
- VTK:PolyData之LoopBooleanPolyDataFilter
- VTK:几何对象之Point
- 【实战 Ids4】║ 控制台密码模式搭配Ocelot网关
- windows10安装mysql 8.0_手把手教你在Windows 10安装MySQL 8.0(详细图文)
- python像素处理_Python 处理图片像素点的实例
- C语言中指针的基类型,c – 将指针从一种基类型转换为另一种基类型
- app.honeycomb.Shell$HomeActivity failed to start
- 2021最新SSM博客,功能完善,初云博客增强版
- LACP模式链路聚合
- 人工智能:一种现代的方法 书本课后习题解答
- 美观实用的BeautifulReport测试报告
- 极域电子书包课堂管理系统怎么控屏_极域电子教室使用说明
- 粒子群算法的几个适应度评价函数
- mysql批量添加空行_MySQL加入空行
- Ubuntu安装ESPNET(搞了一个多月)
- Java开发指南!java生成word文档修改样式
- Django教程 —— 初步完善图书管理系统
- JavaScript案例之使用验证码进行简单判断