menu:
一、php基础语法
- PHP语法规则
- PHP标记
- 注释
二、变量及操作
- 概念
- 声明变量
- 修改变量的值
- 删除变量
- 可变变量
三、预定义变量
四、内存原理(形象理解)
- 内存结构
- php的执行过程
- php嵌入到HTML的执行
- php变量中的传递方式
五、常量
- 概念
- 定义
- 常量的判断及获取所有常量
- 魔术常量
六、php的数据类型
- 数据类型的分类
- 整数型 int
- 浮点型 float
- 字符串 string
- 布尔型 Bool
- 数组 Array
- 数组 null类型
- 资源类型
php基础语法 > 第二天视频 > 02php语法规则
一、PHP基本语法
- PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言;
- PHP原始为Personal Home Page的缩写, 现在已经正式更名为:Hypertext Preprocessor,中文名:“超文本预处理器”);
-
PHP语法规则
- 如果文档后缀名是.htm,那即使文档里有php代码也不会交给php解析处理。只有后缀名是.php的文档才会交给PHP处理,然后php交还给Apache,Apache再交给browser显示;
- php每一条语句后必须有;分号;
- php中的变量名规则与python相同,方法、函数和类名最好遵照python规则;
-
PHP标记
- php开始至今存在四种标签;
- 标准格式(xml) <?php ... ?>
-
script格式
script格式标记 - 短格式 <? ... ?> 默认未开启,需要在php文件夹 - php.ini里配置开启;
- asp格式 <% ... %> 默认未开启,需要在php文件夹 - php.ini里配置开启;
-
注释
- 单行注释 // 注释内容
- 多行注释 /* 多行注释 */
<?php
/**
* Created by PhpStorm.
* User: JLP
* Date: 2019/3/18
* Time: 10:48
*/
?>
二、变量及操作
- 程序语言就是对内存进行操作(对内存进行读写操作)
-
概念
- 变量是内存中临时存储数据的一个空间,这个空间的名字就叫做变量名,变量名是用于对这个内存中的数据进行引用的;
-
声明变量
- php中的变量必须以“$”开头,变量名只能包含字母、数字、下划线,且只能以字母或下划线开头;
- $variable = value
$a = 10;
$b = 5;
$result = $a + $b;
echo $result; // 15
- 修改变量的值
- 重新赋值即可;
$name = "Bob";
$name = "Ham";
echo $name; // Ham
- 删除变量
- 语法:unset($variable);
$name = "Bob";
unset($name);
echo $name; // Undefined variable: name
- 可变变量
- 先解析age就能得到17;
$item = "age";
$age = 17; // 先解析$item为age,然后解析$age就能得到17
echo $$item // 17
$item = "age";
$$item = 17; // 为动态变量赋值;
echo $age // 17
三、 预定义变量
- php为我们预先定义了一组变量,这些变量会在不同的需求中使用。
- $_GET 用于接收前台表单使用GET方式提交得数据;
- $_POST 用于接收前台表单使用POST方式提交得数据;
- $_REQUEST 用于接收前台表单使用GET 或 POST方式提交得数据;
- $_SERVER 记录服务器端与客户端得相关信息;
- $_COOKIE 一种会话技术;
- $_SESSION 一种会话技术;
- $_FILES 用于记录用户上传的文件信息;
- $_GLOBAL 用于记录全局变量
四、 内存原理(形象理解)
-
内存结构
内存结构- 栈区
- 保存的是变量名(术语叫引用)。对于cpu来说,读写速度是最快的。
- 堆区
- 存储的是“复杂”的数据:数组、对象;
- 数据段
- 存储的是简单的数据:整数型、浮点型
- 代码段
- 存储的是源代码对应的机器指令。(代码转换成的机器指令)
- 输出缓存
- 只要遇到输出命令,例如:echo、print、print_r、var_dump,这些指令都会将所要输出的数据放在 输出缓冲 中。
- 栈区
-
php的执行过程
-
- 编译阶段
- 进行语法检查、词法检查、代码优化;
- 编译通过后将源代码转换成机器指令;
- 编译阶段错误的提示信息;
-
- 执行阶段
- 如果编译通过后,会将源代码对应的机器指令保存在代码段,再开始执行代码段中的机器指令;
- 1、编译阶段
- 1.1、语法检查、词法检查、代码优化,然后在代码段生成机器指令;
- 2、执行阶段
- 2.1、执行代码段中的代码
-
2.2、编译阶段
图片.png
-
-
php嵌入到HTML的执行
-
当php功能模块在处理一个php文件时,它只关心php代码(使用php标签包含的代码)。对于非php代码,它会原样输出;
图片.png
-
-
php变量中的传递方式
- 在php中变量有两种传递方式:
- 赋值传值:
-
使用一个变量a为另一个变量b赋值时,传递的事变量a的值,这种赋值方就是赋值传值
赋值传值
-
- 引用传值:
- 利用&符号来把赋值传值改变为引用传值。
- 使用一个变量a为另一个b赋值时,传递的事变量a的地址,这种赋值方式就是引用传值;
-
相当于python的可变数据类型;
引用传值
- 赋值传值:
- 在php中变量有两种传递方式:
五、常量
-
概念:
- 常量就是一种特殊的变量,也是用于存储数据。常量一旦定义就不允许修改其值,常量本身也不允许删除。
-
定义
- 语法:
- difine("const_name", value)
- const const_name = value
- 说明:
- 常量一旦定义就不允许修改
- 常量的值只能是基本的数据类型(标量数据类型)
- 常量在命名时一般使用全大写形式,常量前面不需要加$符号;
- define 和 const 的区别:
- define语法可以在分支结构中(if)定义常量,const不允许;
- define("PI", 3.14, true) // 如果函数内第3个参数为“true”,使用常量的时候可以不区分大小写;
- 语法:
if(true){
// 分支结构里只能用define
define("PI", 3.14); // 正确
const PI = 3.14; // 不正确
}
define("PI", 3.1415); // 常量定义语法1;
print(PI); // 3.1415
PI = 10; // 常量不期待“=”Parse error: syntax error, unexpected '='
const name = "Bob"; // 常量定义语法2;
-
- 常量的判断及获取所有常量
- 判断常量是否存在 : 利用defined函数
- 获取php的所有常量: 用get_defined_constants函数;
//判断常量是否存在
const NAME = "Bob"; // 定义常量;
$result = defined("NAME"); // 判断常量是否存在;
var_dump($result) // 函数用于输出变量的相关信息。 输出为:bool(true)
// 获取php的所有常量
$result = get_defined_constants(); // 查看php所有的常量
echo "<pre>"; // <pre> 标签的一个常见应用就是用来表示计算机的源代码。
print_r($result) // 打印结果
// 单独获取PHP常量;
echo "PHP_VERSION = ", PHP_VERSION, "<br/>"; // 5.6.30
echo "PHP_OS = ", PHP_OS, "<br/>"; // WINNT
echo "PHP_INT_MAX = ", PHP_INT_MAX, "<br/>"; //2147483647
- 魔术常量
- php中定义了一组魔术常量;
echo __FILE__, "<br/>"; // 获取当前文件路径和文件名;
echo __DIR__, "<br/>"; // 获取当前的文件名;
echo __LINE__, "<br/>"; // 获取当前的行号;
echo __METHOD__, "<br/>"; // 获取当前方法的方法名;
echo __CLASS__, "<br/>"; // 获取当前类的类名;
echo __NAMESPACE__, "<br/>"; // 获取当前命名空间的空间名;
echo __FUNCTION__, "<br/>"; // 获取当前函数的函数名;
// 实例:显示当前函数的函数名;
function showInfo(){
echo "function name is: ", __FUNCTION__, "<br>";
}
showInfo();
六、php的数据类型
-
数据类型的分类
- php数据类型分3大类 8小类:
-
- 标量(scalar)数据类型;
- int 整数型 int 和 float 统一归类为Number
- float 浮点型
- boolean 布尔型
- string 字符串
-
- 复合数据类型;
- Array 数组
- Object 对象
-
- 特殊数据类型;
- null null
- resource 资源类型
-
- php数据类型分3大类 8小类:
-
整数型 int
- 线性的整数
- 十进制
- $v = 255;
- 八进制
- 以0开头,且不能有超过7的数字;
- 十六进制
- 以0x开头,包含0-9 a-f
- 十进制
- 线性的整数
// 十进制
$v1 = 255;
echo $v1, "<br/>"; // 255
// 八进制
$v2 = 076;
echo $v2, "<br/>"; // 62
// 十六进制
$v3 = 0xFF;
echo $v3, "<br/>"; // 255
- 浮点型 float
- 带有小数点的数都是浮点类型;
- 小数点有两种表示方式:
-
- 普通方式
- $v = 3.6;
-
- 科学计数法
- $v = 12.345E-2; // 0.12345
-
// 不能随意得对两个小数进行比较;
if(0.9-0.3==0.6){
echo("true");
}else{
echo("false"); // false
}
- 字符串 string
- 字符串就是单引号 或 双引号括起来得字符。
-
- 使用单引号定义得字符串;
- 单引号字符串里能转义的字符有 “ //, /' ”
-
- 使用双引号定义得字符串;
- 双引号字符串里所有转义符都能被转义;
-
- heredoc
- 第三种表达字符串的方法是用 heredoc 句法结构:<<<。在该运算符之后要提供一个标识符,然后换行。接下来是字符串 string 本身,最后要用前面定义的标识符作为结束标志
// heredoc
$bar = <<<EOT
里面可包含大段字符串 不需要考虑单双引号。
EOT;
- 布尔型 Bool
- 数组 Array
- 数组 null类型
- 资源类型
// heredoc
$bar = <<<EOT
里面可包含大段字符串 不需要考虑单双引号。
EOT;
网友评论