php 程序
1. php 是什么
- PHP: (PHP: Hypertext Preprocessor), 超文本预处理器的缩写
- PHP 是开源的,免费的,运行在服务端的,用来动态生成网页数据的脚本语言
- 所谓脚本语言,是指不需要编译,直接由解释器/虚拟机执行的编程语言
2. php 程序执行流程
- php 程序是用 php 指令编写并由 php 解析器执行的代码
- php 程序必须使用
.php
做为扩展名 - php 程序可以使用标签方式嵌入到 html 文档中
执行流程哪下:
- 客户端请求服务器端的 php 程序
- 服务器端将 php 程序转发给 php 解释器执行
- php 解释器执行完毕将生成的 html 或其它内容返回到服务器
- 服务器将最终生成的 html 代码做为响应内容返回客户端
3. php 集成运行环境
初学者推荐使用集成环境,省去手工逐一安装配置麻烦
序号 | 集成环境 | 操作系统 | 描述 |
---|---|---|---|
1 | phpStudy | Windows / Linux | 中文,免费,功能全, 推荐 |
2 | MAMP | MacOS | 英文,收费, 功能全, 推荐 |
4. php 程序文档
序号 | 组成 | 描述 |
---|---|---|
1 | <?php ... ?> |
PHP 代码标记 |
2 | ; 分号 |
语句分隔符,代码块使用右大括号 |
3 | 空白符 | 合理使用空白符可增强代码可读性 |
4 | 注释 | // 单行注释 , /* 多行注释 */ |
php程序文档代码演示
<!DOCTYPE html>
<?php
// 这是一个php程序文档
function sum(int $a, int $b) : string
{
return "$a + $b = " . ($a + $b) ;
}
echo sum(10, 70);
?>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>
</title>
</head>
<body>
</body>
</html>
php 标记之外的内容会原样返回客户端,如 html 代码
5. 打印结果
序号 | 指令 | 描述 |
---|---|---|
1 | echo |
语言结构, 可查看多个变量 |
2 | print |
语言结构,功能与echo 类似,区别是有返回值 |
3 | print_r() |
函数,以更容易理解的格式打印变量信息,常用于数组 |
4 | var_dump() |
函数,可查看一个变量更多信息,如类型 |
5 | var_export() |
函数,输出或返回一个变量的字符串表示(源代码) |
打印代码演示
<?php
# php打印结果
$email = 'admin@php.cn';
// echo, 没有返回值
echo $email, '<br>';
// print, 有返回值,如果成功返回1
// echo , print 不是函数, 是语言结构, 指令
echo print $email;
echo '<hr>';
// var_dump(): 函数
var_dump($email);
echo '<hr>';
// var_export(): 函数
var_export($email);
实际工作中,
echo
和var_dump()
基本可以满足大多数需求
6.变量定义与规则
- 通常学到的是,变量代表存储空间以及其中数据的一个“标识符”。
- 变量名 指向 变量值
- 更深入的说是 变量指向内存的一块区域
规则
- 没有使用$开始, 正确的变量必须使用$做为起始符号
- 变量名中不允许使用数字开始
- 变量名中不能使用特殊符号
- 必须由以下三种字符组成: 大小写的英文字母, 下划线, 数字, 且不能以数字开始
- 必须要有意义的定义
代码演示
<?php
# 变量命名
$username = 'admin';
$userName = 'username';
// 变量名区分大小写
echo $username, '<br>' , $userName, '<hr>';
// 没有使用$开始, 正确的变量必须使用$做为起始符号
// hello = 'php';
// 变量名中不允许使用数字开始
// $123abc = 'php';
// 变量名中使用了特殊符号
// $user@id = 100;
// 变量名: $ + php标识符
// php有效标识符
// 必须由以下三种字符组成: 大小写的英文字母, 下划线, 数字, 且不能以数字开始
// 正确但无意义
$aaa = 'php';
$_ = 666;;
$_123 = 888;
echo $_123;
7.值传递与引用传递
- 引用赋值,&:取地址符,引用符
- 相当于给原变量起了一个别名
代码演示
<?php
// 值传递和引用传递
//1.传递值
$price1 = 99;
//只是将$price1变量的值赋值给了一个新变量
$price2 = $price1;
echo $price1,'---',$price2,'</br>';
//更新
$price1=299;
echo $price1,'----',$price2,'</br>';
// 2.引用传递
$price1 = 99;
// 引用赋值,&:取地址符,引用符
//相当于给原变量取一个别名
$price2=&$price1;
echo $price1,'---',$price2,'</br>';
//更新
$price1=299;
echo $price1,'----',$price2,'</br>';
8.可变变量
- 检测:isset()
- 删除:unset()
- 如果变量已经定义但是未赋值(初始化),默认用 NULL 进行赋值
- 初始化:第一次赋值
- 更新/修改:第二次赋值;
- is_null()判断是否没有赋值
- empty()判断是否为空,但是有值
代码演示
<?php
// 可变变量:变量的标识符/变量名
$var='email';
//这下面两种都是一样的
//$email = '1082828@qq.com';
$$var= 'zzzzzz';
echo $emali;
//error_reporting(E_ALL);
// 检查与撤除变量
//echo $username;
//if (isset($username)):echo $username,'</br>';
$username='zhou';
//删除/销毁变量
//unset($username);
echo $username.'<br>';
if (isset($username)):echo $username,'</br>';
else:
echo '未定义变量名';
endif;
if (isset($username)){
echo $username, '<br>';
}else{
echo '变量未定义';
}
//变量已经定义而未初始化
// 初始化第一次赋值
// 更新/ 修改:第一次赋值
echo'<br>';
$email;
var_dump(is_null($email));
echo '<br>';
$var = '';
var_dump(is_null($var));
var_dump(empty($var));
9.数据类型
三剑客是:字符串string
、数值int, float
、布尔true / false
- 字符串是字符序列;
- 整数是没有小数的数字;
- 浮点数是有小数点或指数形式的数字;
- 逻辑是 true 或 false;
- 数组在一个变量中存储多个值;
- 对象是存储数据和有关如何处理数据的信息的数据类型;
- 特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值;
代码演示
<?php
// 数据类型
// 1. 基本类型
//php三剑客
// 字符串: string
$name = '手机';
// 数值: int, float
$price = 1890;
// 布尔: true / false
$is5G = true;
echo gettype($is5G),'<hr>';
// 2. 复合类型
// 对象
$obj = new stdClass;
$obj->email = '12873737@qq.cn';
echo $obj->email . '<br>';
// 数组
$arr = ['手机', 100, 'nuojiya'];
// $str=print_r($arr, true);
// echo '<pre>'.$str.'</pre>';
echo '<pre>'.print_r($arr, true).'</pre>';
// 3. 特殊类型
$num = null;
var_dump($num);
// 资源类型, 文件
$f = fopen('demo2.php','r');
var_dump($f);
echo gettype($f),'<hr>';
if (gettype($f) === 'resource') {echo 'demo2.php是一个文件';}
课后总结
- 进入php的第一天感觉比html难,只有照着老师的一个一个慢慢打
- 课后慢慢的下来去看视频理解