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 标记之外的内容会原样返回客户端,如 html 代码
测试代码如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>测试PHP文档组成--<?php echo 'hello world';?></title>
<style media="screen">
h1{
color:<?php echo 'red';?>;
}
</style>
<script type="text/javascript">
alert('hello world');
</script>
</head>
<body>
<h1>this is king show time<?php echo '^-^...';?></h1>
</body>
</html>
5. 打印结果
序号 | 指令 | 描述 |
---|---|---|
1 | echo |
语言结构, 可查看多个变量 |
2 | print |
语言结构,功能与echo 类似,区别是有返回值 |
3 | print_r() |
函数,以更容易理解的格式打印变量信息,常用于数组 |
4 | var_dump() |
函数,可查看一个变量更多信息,如类型 |
5 | var_export() |
函数,输出或返回一个变量的字符串表示(源代码) |
实际工作中,
echo
和var_dump()
基本可以满足大多数需求
<?php
# php打印结果
# echo和print不是函数,他是语言结构,指令
$email = 'admin@php.edu';
//echo
echo $email, '<br>';
//echo没有返回值
echo print $email;
//print,有返回值,如果成功就是返回1(true)
echo '<hr>';
// var_dump():函数
// 函数必须用括号调用
var_dump($email);
//var_dump()不仅可以打印出来,还可以返回字符类型以及多少个字符
echo '<hr>';
var_export($email);
// var_export返回php代码,比如动态生成一个数组,创建一个文件
echo 与 print 区别
echo - 可以输出一个或多个字符串
print - 只允许输出一个字符串,返回值总为 1
注意:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
6. 变量定义与规则
定义:变量是用于存储数据的容器
PHP 变量规则:
变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
变量名是区分大小写的
<?php
//变量定义
$txt="PHP中文网";
# php变量是弱类型
$var=100;
var_dump($var);
echo '<hr>';
$var = 'hello';
var_dump($var);
//php没有变量声明的概念,它的类型由赋予他的值决定
6.1 值传递与引用传递
引用赋值,&:取地址符,引用符
相当于给原变量起了一个别名
//值传递在函数范围内,改变变量值得大小,都不会影响到函数外边的变量值
$a=100;
// 只是将$a变量的值赋值给了一个新变量$b
$b=$a;
echo $a,'...',$b,'<br>';//结果100...100
//引用传递在函数范围内,对值的任何改变,在函数外部也有所体现,因为传引用传的是内存地址
$a = 200;
$b = &$a;
echo $a,'...',$b,'<br>';//结果200...200
值传递与引用传递的区别
按值传递中原来参数的值在调用其他函数之后还是原来的值,而引用传递则是改变了原来的值。按照按值传递的做法来传值时,如果需要原来的值发生改变,则需要在进行代码复制,若是值够大或者是一大串字符串时,会使代码比较多,重复,而引用传递则不需要复制PHP代码,对提高性能这一个方面有很大的优势。
6.2 可变变量
- 可变变量:变量的标识符可以动态的改变
- 数据表查询的时候需要动态的改变变量名,比如说图片处理,http 处理等等
<?php
// 可变变量: 变量的标识符/变量名称,可以动态的改变, 变量名可以来自另一个变量
$var = 'email';
// 变量名email, 恰好是变量$var的值
// $email = 'peter@php.cn';
$$var = 'dashu@163.com';
echo $email;
6.3 检测和删除变量
- 检测:isset()
- 删除:unset()
- 如果变量已经定义但是未赋值(初始化),默认用 NULL 进行赋值
- 初始化:第一次赋值
- 更新/修改:第二次赋值;
- is_null()判断是否没有赋值
- empty()判断是否为空,但是有值
<?php
// error_reporting(E_ALL);打开报错
// 检测与删除变量
// echo $username;
//检测是否存在
if (isset($username)) echo $username, '<br>';
$username = 'king';
echo $username .'<hr>';
// 变量删除/销毁
unset($username);
if (isset($username)) {
echo $username, '<br>';
} else{
echo '变量未定义';
}
echo '<hr>';
// 变量已定义而未初始化,默认用NULL进行赋值
// 初始化:第一次赋值
// 更新/修改: 第二次赋值
$email;
$email = null;
var_dump(is_null($email));
echo '<hr>';
$var = '';
var_dump(is_null($var));
var_dump(empty($var));
7. 数据类型
<?php
# 数据类型
// 1. 基本类型
// 字符串: string
$name = '我爱去中文网学习';
// 数值: int, float
$price = 3890;
// 布尔: true / false
$is5G = true;
echo gettype($is5G),'<hr>';
echo var_dump($is5G);
// 2. 复合类型
// 对象
$obj = new stdClass;
$obj->email = 'king@163.com';
echo $obj->email . '<br>';
echo gettype($obj),'<hr>';
// 数组
$arr = ['电脑', 8000, 'huawei'];
// $str=print_r($arr, true);
// echo '<pre>'.$str.'</pre>';
echo '<pre>'.print_r($arr, true).'</pre>';
echo gettype($arr),'<hr>';
// 3. 特殊类型
$num = null;
var_dump($num);
// 资源类型, 文件
//fopen() 函数打开文件或者 URL。如果打开失败,本函数返回 FALSE。
$f = fopen('demo7.php','r');
var_dump($f);
echo gettype($f),'<hr>';
if (gettype($f) === 'resource') {echo 'demo7.php是一个文件';}
个人总结
对php与php的运行机制有了初步认识,与如何定义php变量规则,赋值如何去检测与判断删除变量,打印输出结果,还有php的数据类型。多敲多练继续加油吧~