基础语法
2019-01-03 本文已影响17人
追逐_chase
![](https://img.haomeiwen.com/i2838971/cd5c0142d0f0591a.jpg)
变量
- 变量:它是内存中用于临时存储数据的一个空间,这个空间的名字就是变量
- 变量名必须区分大小写,其余函数名,方法名,类名都不区分大小写
- 变量以$开头 只能包含字母,数字,下划线,只能以字母,下划线开头
// <?php?> 是php的语法标签格式
<?php
$v1 = 1;
$v2 = 2;
$result = $v1 + $v2;
// echo 是返回值
echo $result ;
//删除变量
// $v3 = 3;
unset($v3);
?>
- 可变变量
//可变变量
$v = "age";
$age = 20;
//此时 $v 被解析成 age
echo $v,"<br/>";
//$v被解析成 age 编程 $age 被解析成20
echo $$v,"<br/>"
- 预定义变量
$_GET 用于表单提交 get方式提交
$_POST 用于表单提交 post方式提交的数据
$_REQUEST 用于接受get方式提交,post方式提交的数据
$_SERVER 记录服务端和客户端的相关信息
$_COOKIE 一种会话技术
$_SESSION 一种会话技术
$_FILES 用于记录用户上传的文件
$GLOBALS 用于记录全局变量
//内存原理
1.栈区: 保存的是变量名,引用,读取速度快
2.堆区:复杂数据存储存储,比如:数组,对象
3.数据段:简单数据:整形,浮点型,布尔
4.代码段:存储的是源代码的对应的机器指令
5.输出缓存:只要遇到输出命令: echo,print输出的数据 先寸放 在 输出缓存中
![](https://img.haomeiwen.com/i2838971/3df3c735a2bbf610.png)
-
执行过程
image.png
- 传值
- 赋值传值
<?php
//1.赋值传值
$v1 = 10;
$v2 = $v1;
echo $v1;
>
- 引用传值
<?php
//2.引用传值
$v3 = 10;
//$v4引用的是$v3的地址
$v4 = &$v3;
$v4 = 20;
echo $v3;
?>
常量
- 定义之后不允许修改,也不允许删除
//语法1
// define("常量名","常量值"); 可以在分支结构语句中
define("gg","70");
echo gg;
//语法2 用 const声明常量。不可以在分支结构语句中
const ll = 99;
echo ll;
//获取所有的常量
$result = get_defined_constants();
print_r($result);
- 魔术常量
<?php
__FILE__ 用于获取当前文件完整的路径和文件名
__DIR__ 用于获取当前文件的路径
__LINE__ 用于获取当前代码的行数
__FUNCTION__ 用于获取当前函数的函数名
__METHOD__ 用于获取当前方法的方法名
__CLASS__ 用于获取当前类的类名
__NAMESPACE__ 用于获取当前空间的空间名
?>
数据类型
标量数据类型
int整形
float浮点型
string 字符串行
boolen 布尔
-
字符函数
-
trim()
去空格 -
strlen()
获取字符串的长度,但是不能正确处理中文字符串 -
mb_strlen()
获取字符串的长度,能正确处理中文字符串
-
-
其中在字符串中会遇到一些特殊的符号,我们需要用到转义符
\’ 单引号
\" 双引号
\t tab符
\r 回车符
\n 换行符
\\ \
\$ $
复合数据类型
数组 类型
对象 类型
特殊的数据类型
null
resource 资源类型
-
var_dunp()
函数可以输出数据类型和数据值
var_dump(false); 结果是:bool(false)
数据类型的转换和判断
- 当参与运算的2个数据类型不同失败,php会自动进行转换
$num = 100;
$num1 = "100yuan";
echo $num * $num1;
- 强制转换
(float)变量 转换为浮点型
(array)变量 转换数组
(object)变量 转换为对象
(string)变量 转换为浮字符串
(boolean)变量 转换为布尔
- 数据类型的判断
<?php
//判断是不是 int float strong bool类型
is_int()
is_float()
is_string()
is_bool()
// 判断是不是标量的数据 类型(就是上面的4中类型 int,float,string,bool)
is_scalar()
//判断对象 数组类型
is_object()
is_array()
//判断null 和 资源类型
is_null()
is_resource()
//用于判断变量是否设置值
isset()
//判断变量是为空
//此处的空等效于返回布尔false的值都被empty认为是空
//如果是空 返回true
empty()
?>
流程控制
-
顺序结构
-
分支结构
-
if分支
if (condition) {
# code...
}else {
# code...
}
- 多分支
switch ($variable) {
case 'value':
# code...
break;
default:
# code...
break;
}
-
循环
- for
- while
文件引入
-
require
-
require(文件名)
-
require_once(文件名)
-
include
-
include(文件名)
-
include_once(文件名)
区别:include在引入文件时,如果引入的文件不存在则会报错,但程序还会继续向下执行
require 在引入文件时,如果引入的文件不存在则会报错,会终端程序的执行
include_once,require_once每次引入文件时,都会检查索要引入的文件之前有没有被引入过,如果有引入过就不会再引入