[TOC]
>[success] 变量是存储信息的容器
**弱类型语言PHP**
PHP是一种弱类型语言。在大多数编程语言中,变量只能保持一种类型的数据,而且这个类型必须在使用变量前声明,例如C语言中。而在 PHP中,变量的类型通常不是由程序员设定的,确切地说,是根据该变量 使用的上下文在运行时(即变量的值)决定的。
## 创建 PHP 变量
### PHP 变量规则
1. 变量以 $ 符号开头,其后是变量的名称
2. 变量名称必须以字母或下划线开头
3. 变量名称不能以数字开头
4. 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
5. 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
6. 变量名一定要通俗易懂,如: $orderId 或者 $order_id
>[danger] 注释:PHP 变量名称对大小写敏感!
~~~
<?php
$var = "Bob";
$Var = "Joe";
echo "$var, $Var"; // 输出 "Bob, Joe"
$4site = "not yet"; // 非法变量名;以数字开头
$_4site = "not yet"; // 合法变量名;以下划线开头
$i站点is = "mansikka"; // 合法变量名;可以用中文
?>
~~~
## 常用输出函数
### echo
`echo` — 输出一个或多个字符串
~~~
<?php
echo "Hello World";
?>
~~~
### var_dump
`var_dump` — 打印变量的相关信息
~~~
<?php
$v = "xuebingsi";
var_dump($v);
?>
~~~
## 变量的赋值
### 传值赋值
把一个值存储到一个变量中。
~~~
<?php
$v = "xuebingsi";
?>
~~~
### 传址赋值(引用赋值)
一个变量引用另外一个变量的地址,通过&实现。
~~~
<?php
$a = 1;
$b = &$a;
$a = 7;
echo $b; //输出结果为7
?>
~~~
### 可变变量
有时候使用可变变量名是很方便的。就是说,一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置,例如:
~~~
<?php
$a = "hello";//普通变量
$$a = "world";//可变变量
echo $hello; //输出结果为world
?>
~~~
## 来自 PHP 之外的变量
在实际业务中,我们经验需要跟脚本进行交互,当一个表单提交给 PHP 脚本时,表单中的信息会自动在脚本中可用。这些外部数据或变量保存在一种特殊的全局数组中。
### $_GET
通过 URL 参数传递给当前脚本的变量的数组。
~~~
<?php
//访问 http://127.0.0.1/test.php?id=30
$id = $_GET["id"];
echo $id; //输出结果为30
?>
~~~
### $_POST
通过 HTTP POST 方法传递给当前脚本的变量的数组。
**一个简单的 HTML 表单**
~~~
<form action="test.php" method="POST">
Name: <input type="text" name="username"><br />
Email: <input type="text" name="email"><br />
<input type="submit" name="submit" value="Submit me!" />
</form>
~~~
**一个简单的 HTML 表单**
~~~
<?php
// 自 PHP 4.1.0 起可用
echo $_POST["username"];
echo $_REQUEST["username"];
~~~
### $_REQUEST
默认情况下包含了 $_GET,$_POST 和 $_COOKIE(后面讲)的数组。
## 变量用个常用的方法
| 函数名 | 作用 |
| --- | --- |
| isset | — 检测变量是否设置 |
| empty | — 检查一个变量是否为空 |
>[danger]练习:通过前端页面Form表单提交数据,在PHP中接收表单推过来的数据,并且打印出来。
- 序言
- 第一章:准备工作
- 写在学习之前的话
- web应用开发结构
- 开发工具/环境
- 第二章:展现层面(HTML/CSS)
- HTML简介
- HTML基础
- HTML编码
- HTML链接
- HTML图像
- HTML列表
- HTML表单
- HTML表格(分水岭)
- HTML 实体
- HTML框架
- CSS层叠样式表
- CSS选择器
- CSS文本/字体
- CSS继承和叠加
- CSS框模型
- CSS浮动(分水岭)
- CSS定位
- CSS背景
- CSS图标字体
- CSS补充
- 开发技巧
- 第三章:展现层面(Javascript)
- JS简介
- JS实现
- JS输出交互
- JS变量
- JS数据类型
- JS运算符
- JS流程控制(分水岭)
- JS函数
- JS数组
- JS对象(分水岭)
- JS数组对象
- JS字符串对象
- JS数学对象
- JS日期对象
- JS BOM对象(分水岭)
- JS DOM对象
- JS事件对象
- JS元素对象
- JS DOM节点
- 第四章:展现层面(Jquery)
- JQ简介
- JQ使用
- JQ选择器
- JQ筛选
- JQ属性
- JQ-CSS
- JQ事件
- JQ文档处理
- JQ效果
- JQ-ajax
- 第五章:逻辑/业务层面(PHP)
- PHP简介
- PHP变量
- PHP数据类型
- PHP常量
- PHP运算符
- PHP流程控制
- PHP函数(分水岭)
- PHP日期
- PHP数学
- PHP数组
- PHP字符串
- PHP正则表达式(分水岭)
- PHP目录操作
- PHP文件
- PHP上传/下载
- PHP面向对象(分水岭)
- PHP图像处理
- PHP会话控制
- Ajax异步处理
- PHPMysql扩展
- PHPMysqli扩展
- PHPPdo扩展
- PHP接口
- PHP命名空间
- 第六章:逻辑/业务层面(框架设计)
- 第七章:存储层面(mysql)
- Mysql基础
- Mysql Sql简介
- Mysql数据库
- Mysql数据类型
- Mysql数据表
- Mysql操作记录
- Mysql查询
- Mysql修改表结构
- Mysql日期与时间
- Mysql分组统计
- Mysql多表查询
- Mysql安全
- Mysql存储引擎
- Mysql事务
- Mysql视图
- Mysql触发器
- Mysql存储过程
- Mysql存储函数
- Mysql优化
- 第八章:服务器(Linux)
- Linux介绍与安装
- Shell
- 目录与文件操作
- VIM编辑器使用
- 帐号管理
- SUDO
- 权限控制
- 压缩与打包
- 软件安装
- 计划任务
- 进程管理
- 宝塔Linux面板