PHP的8种变量类型与常量、变量作用域、流程控制
一、PHP的8种变量8种变量类型:整型、浮点型、布尔型、字符串、数组、对象、null、资源类型(Resource)" class="reference-link">
1.2、float 浮点型
1.3、boolean 布尔型
1.4、string 字符串
1.5、array 数组
1.6、class 对象
1.7、null
1.8、Resource
二、常量2.1、常量定义
2.2、系统常量和魔术常量
2.3、常量注意点:
三、变量作用域3.1、局部变量
3.2、全局变量
3.3、系统预定义变量
四、流程控制4.1、单一条件分支解构 if
4.2、双向条件分支解构 if…else
4.3、switch
8种变量类型:整型、浮点型、布尔型、字符串、数组、对象、null、资源类型(Resource)
1.1、int 整型
$price = 4800;
echo $price;
var_dump($price); // int 整型
1.2、float 浮点型
$price = 88.88;
echo $price;
var_dump($price); // float 浮点型
1.3、boolean 布尔型
$res = true;
var_dump($res); // boolean 布尔型
1.4、string 字符串
$username = 'username';
var_dump($username); // string 字符串
// ! php 【变量】 是受大小写约束
// ! php 【函数】 不受大小写约束
1.5、array 数组
$arr = array(
["id" => 1, 'name' => '新闻', 'url' => 'news.php'],
["id" => 2, 'name' => '产品', 'url' => 'contact.php'],
);
var_dump($arr);
1.6、class 对象
class Car
{
public $name;
private $team;
public function __construct($team)
{
$this->team = $team;
}
public function play(){
return $this->name . '正在' . $this->team . '秘密训练<br /><br />';
}
}
$p = new Car('忽然队');
$p->name = 'James';
echo $p->play();
1.7、null
// 赋值为空
$x=null;
$y= 1;
// 当前变量没有赋值
@var_dump($z);
// 释放一个变量
unset($y);
var_dump($x);
var_dump($y);
1.8、Resource
$fp = fopen('demo.js', 'r');
var_dump($fp);
二、常量2.1、常量定义
const APP_PATH = '/02PHP/20230302';
echo APP_PATH . "<br /><br />";
define('NATION', 'CHINA');
echo NATION . "<br /><br />";
printf('国籍:%s', NATION);
2.2、系统常量和魔术常量
// 系统常量
// 查看系统常量 get_defined_constants()
echo '<pre>';
//print_r(get_defined_constants(true));
// 魔术常量
echo __FILE__ . '<br /><br />'; //当前执行PHP脚本的完整路径盒文件名,绝对路径
echo __DIR__; // 当前执行PHP脚本的完整路径
2.3、常量注意点:
// 1. 类常量只能用const定义
class User
{
const APP_PATH = '/02PHP/20230302';
}
echo '<br /><br />';
echo '=========================' . '<br /><br />';
// 2. 常量必须初始化赋值
$height;
const HEIGHT = '183cm';
三、变量作用域3.1、局部变量
function demo()
{
// 局部变量,只在函数内部访问有效
$a = 100;
$b = 200;
echo ($a+$b);
}
demo();
3.2、全局变量
// 全局变量,无法再函数内部直接调用
$one = 100;
$two = 200;
define('NATION', 'CHINA');
function demo2()
{
// 1. global
global $one, $two;
echo "计算结果:" . ($one+$two);
echo '<br /><br /><br />';
// 2. $GLOBALS超全局变量
echo "运算结果:" . ($GLOBALS['one']+$GLOBALS['two']);
echo '<br /><br /><br />';
echo NATION; //说明常量不受作用域限制
}
demo2();
3.3、系统预定义变量
//! 系统预定义变量
// 超全局变量
:数组,任何地方都可以访问,不受作用域限制
// $GLOBALS
:引用全局作用域中可用的全部变量
// $_SERVER
:服务器和执行环境信息
// $_GET
:通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组
// $_POST
:当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
// $_FILES
:通过 HTTP POST 方式上传到当前脚本的项目的数组
// $_COOKIE
:通过 HTTP Cookies 方式传递给当前脚本的变量的数组
// $_SESSION
:当前脚本可用 SESSION 变量的数组
// $_REQUEST
:默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
// $_ENV
:通过环境方式传递给当前脚本的变量的数组
四、流程控制4.1、单一条件分支解构 if
if(1 == 1){
echo 111;
}
4.2、双向条件分支解构 if…else
$age = 35;
$gender = 'female';
if ($age<=55 && $gender == 'female')
{
echo '离退休还有' . (55-$age) . '年';
}else if($age > 55 && $gender == 'female'){
echo '你猜猜';
}
4.3、switch
【感谢龙石为本站提供数据中台建设http://www.longshidata.com/pages/government.html】
$date = date("w");
switch ($date){
case 1:
echo '今天是工作日星期一';
break;
case 2:
echo '今天是工作日星期二';
break;
case 3:
echo '今天是工作日星期三';
break;
case 4:
echo '今天是工作日星期四';
break;
case 5:
echo '今天是工作日星期五';
break;
default:
echo "今天休息!";
}
// break 退出当前循环
// continue 跳过此次循环,进入下一轮循环