1、什么是PHP
- PHP: (PHP: Hypertext Preprocessor), 超文本预处理器的缩写
- PHP 是开源的,免费的,运行在服务端的,用来动态生成网页数据的脚本语言
- 所谓脚本语言,是指不需要编译,直接由解释器/虚拟机执行的编程语言
- php 程序是用 php 指令编写并由 php 解析器执行的代码
- php 程序必须使用
.php
做为扩展名 - php 程序可以使用标签方式嵌入到 html 文档中
2、php 程序执行流程
- 客户端请求服务器端的 php 程序
- 服务器端将 php 程序转发给 php 解释器执行
- php 解释器执行完毕将生成的 html 或其它内容返回到服务器
- 服务器将最终生成的 html 代码做为响应内容返回客户端
3、php 程序文档
序号 | 组成 | 描述 |
---|---|---|
1 | <?php ... ?> |
PHP 代码标记 |
2 | ; 分号 |
语句分隔符,代码块使用右大括号 |
3 | 空白符 | 合理使用空白符可增强代码可读性 |
4 | 注释 | // 单行注释 , /* 多行注释 */ |
php 标记之外的内容会原样返回客户端,如 html 代码
代码实例
<?php// PHP 代码标记
function sum(int $a, int $b) : string //自定义函数
{
return "$a + $b = " . ($a + $b) ;//返回值
}
echo sum(10, 70); //输出和
?> // PHP 代码标记
4、PHP如何打印结果
序号 | 指令 | 描述 |
---|---|---|
1 | echo |
语言结构, 可查看多个变量 |
2 | print |
语言结构,功能与echo 类似,区别是有返回值 |
3 | print_r() |
函数,以更容易理解的格式打印变量信息,常用于数组 |
4 | var_dump() |
函数,可查看一个变量更多信息,如类型 |
5 | var_export() |
函数,输出或返回一个变量的字符串表示(源代码) |
实际工作中 "echo" 和 "var_dump()" 基本可以满足大多数需求
代码实例
<?php
# php打印结果
$email = 'admin@php.cn';
// echo, 没有返回值
echo $email, '<br>';//语言结构, 可查看多个变量
print $email;// 语言结构,功能与`echo`类似,区别是有返回值,如果成功返回1
echo '<hr>';//输出一条横线
print_r( $email);//函数,以更容易理解的格式打印变量信息,常用于数组
echo '<hr>';
var_dump($email);//函数,可查看一个变量更多信息,如类型
echo '<hr>';
var_export($email);//函数,输出或返回一个变量的字符串表示(源代码)
?>
5、PHP变量命名规则
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
代码实例
<?php
$username = 'admin';
$userName = 'peter';
// 变量名区分大小写
echo $username, '<br>' , $userName, '<hr>';
`错误` //hello = 'php'; // 没有使用$开始, 正确的变量必须使用$做为起始符号
`错误`// $123abc = 'php';// 变量名中不允许使用数字开始
`错误`// $user@id = 100;// 变量名中使用了特殊符号
`注意`//变量命名要有意义, 正确但无意义
$aaa = 'php.cn';
$_ = 888;
$_123 = 999;
echo $_123;
?>
6、PHP变量是弱类型
- 不必向 PHP 声明该变量的数据类型。
- PHP 会根据变量的值,自动判断变量的数据类型。
代码实例
<?php
$var = 100;
var_dump($var);//打印数据类型使显示为"int"(整型)
echo '<hr>';
$var = 'Hello';
var_dump($var);//打印数据类型使显示为"string"(字符型)
$var = true;
var_dump($var);//打印数据类型使显示为"Boolean"(布尔型)
?>
7、值传递和引用传递
7.1、值传递
代码实例
<?php
$price1 = 99;//给$price1赋值为99
$price2 = $price1;//将$price1变量的值赋值给了一个新变量$price2
echo $price1, '----', $price2, '<br>';//输出两个99
$price1 = 299;//给$price1赋值为299
echo $price1, '----', $price2, '<br>';//输出第一个299,第二个99
?>
7.2、引用传递
<?php
$price1 = 99;//给$price1赋值为99
$price2 = &$price1;//将$price1变量的值赋值给了一个新变量$price2
echo $price1, '----', $price2, '<br>';//输出两个99
$price1 = 299;//给$price1赋值为299
echo $price1, '----', $price2, '<br>';//输出两个299
?>
8、可变变量
- 变量的标识符/变量名称,可以动态的改变, 变量名可以来自另一个变量
-变量名前面有两个$$代码实例
<?php
$var = 'email';// 变量名email, 恰好是变量$var的值
$$var = 'peter@php.cn'; // $email = 'peter@php.cn';
echo $email; //输出 'peter@php.cn';
?>
9、数据类型
序号 | 分类 | 类型名称 |
---|---|---|
1 | 基本类型 | String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型) |
2 | 复合类型 | Array(数组), Object(对象) |
3 | 特殊类型 | NULL(空值),资源类型, 文件 |
代码实例
<?php
//基本类型
$name = '手机';// 字符串: string
$price = 3890;// 数值: int, float
$is5G = true;// 布尔: true / false
echo gettype($is5G),'<hr>';
// 2. 复合类型
$obj = new stdClass;// 对象
$obj->email = 'admin@php.cn';
echo $obj->email . '<br>';
$arr = ['电脑', 8000, 'huawei'];// 数组
// $str=print_r($arr, true);
// echo '<pre>'.$str.'</pre>';
echo '<pre>'.print_r($arr, true).'</pre>';
// 3. 特殊类型
$num = null;//空值
var_dump($num);
// 资源类型, 文件
$f = fopen('demo7.php','r');
var_dump($f);
echo gettype($f),'<hr>';
if (gettype($f) === 'resource') {echo 'demo7.php是一个文件';}
?>
10、检测与删除变量
代码实例
<?php
if (isset($username)) echo $username, '<br>';//isset()函数,判断变量是否存在且不为空
$username = 'peter zhu';
unset($username);// 变量删除/销毁
if (isset($username)) {
echo $username, '<br>';
} else{
echo '变量未定义';
}
echo '<hr>';
// 变量已定义而未初始化,默认用NULL进行赋值
// 初始化:第一次赋值
// 更新/修改: 第二次赋值
$email;
$email = null;//给变量赋null值
var_dump(is_null($email));//判断变量是否为NULL值
echo '<hr>';
$var = '';
var_dump(is_null($var));
var_dump(empty($var));//判断变量是否为空
?>
学习总结
本节课学习了一些PHP的基础知识,通过本节课的学习对以前自学知识进行了巩固,同时补充学到了一个引用传递的知识——取地址符(&)。