学习教程来源于:
PHP中文网教程PHP官网PHP手册(简体中文)链接

变量创建于命名规则
  • 以$字符开头,紧跟着的是字母和下划线
  • 后面可以是字母、数字、下划线,不能有特殊字符
  • 区分大小写
$siteName = 'php中文网';
        echo $siteName;
        echo '<hr/>';
        $_purpose = '永久免费的学习平台';
        echo $_purpose;
        echo '<hr/>';
        $name = 'Peter';
        echo $name;
        echo '<hr/>';

驼峰命名法:小驼峰和大驼峰

小驼峰是第一个单词的首字母小写,其他单词的首字母大写
$siteName //小驼峰,经常用于命名:变量、属性、函数或者方法名称

大驼峰命名法(别名:帕斯卡命名法):与小驼峰相似,但是第一个字母必须大写
经常用于给’类’命名

class Person{}

下划线命名法:常用于数据库字段名
表名_字段名

user_name

如果代码中的标识符,是区分大小写的,那么用驼峰命名法,因为它可以使代码更加短小精干。
如果不区分大小写,就不用下划线,可以让代码具有更好的可读性。

变量的默认值与初始化

没有初始化的变量系统会给他一个默认值

默认值
布尔类型:false
数值类型:0
字符类型:""空字符串
数组类型:[]空数组

var_dump($var);	//当不确定类型是,返回NULL
print '<hr/>';
var_dump($var + 10);
print '<hr/>';
//utf-8编码:一个中文三个字符,字母一个字符
var_dump($var.'php中文网');
print '<hr/>';
var_dump($var ? '真' : '假');
print '<hr/>';
var_dump(count($var));

//初始化
$userName = 'Peter';
$userName = null;
$userName = '0';
$age = 19;
$age = 0;
$isMarried = false;
$isMarried = 1; //==>true;

$arr = [];  //创建数组
值传递与引用传递的区别
echo '值传递方式<br/>';
$var1 = 'php';
$var2 = $var1;
echo '$var1:'.$var1,'----','$var2:'.$var2;
$var2 = 'html';
echo '<br/>';
echo '$var1:'.$var1,'----','$var2:'.$var2;

echo '<hr/>引用传递赋值<br/>';
$var3 = &$var1;	//引用赋值
echo '$var3:'.$var3,'----','$var1:'.$var1;
$var3 = 'html';
echo '<br/>';
echo '$var3:'.$var3,'----','$var1:'.$var1;

引用传递,相当于给当前变量起了一个别名,实际上俩个变量指向的是同一个值,相当于俩个变量名共用一个值。

可变变量

变量名称可以来之另一个变量的值

$name = 'pageTitle';
$$name = 'php中文网';	//相当于定义了一个新变量$pageTitle并赋值给它
echo '$name is:'.$name;
echo '<hr/>';
//下面用俩种方法来访问变量$pageTitle
echo '$pageTitle is '.$$name;
echo '<hr/>';
echo '$pageTitle is '.$pageTitle;

注意:用做变量名称的变量值,必须是一个合法有效的标识符
必须是以字母或者下划线开头,后跟字母、数字、下划线

变量的作用域

php变量使用域:

变量类型

创建

作用域

局部变量

当前脚本的函数内部创建

仅函数内部使用

全局变量

当前脚本的函数外部定义

当前脚本

超级全局变量

系统预定义,无需创建,跨脚本使用

跨脚本,任何地方都能用

静态变量

函数内部用static创建

可供每次调用时共享

ps:
全局变量不能在函数内部直接使用,需要声明
超级全局变量是系统内部已定义的

$siteName = 'www.php.cn';	//全局变量
function getSiteName() {
	$siteName = 'php中文网';	//	局部变量
	return $siteName.' 域名是:'.$GLOBALS['siteName'];
}
echo $siteName;
echo '<hr/>';
echo getSiteName();

//全局数组$GLOBALS:对应当前脚本所有全局变量组成的数组
// echo '<pre>';
// print_r($GLOBALS);
// echo '<pre/>';
echo '<hr/>';
echo $GLOBALS['siteName'];

函数中的变量默认是动态设置的,调用完毕就会自动释放
函数中用static声明的变量是静态变量,可在多个调用过程中共享

echo '<hr/>';
function sum() {
	static $total = 10;
	return $total += 10;
}

echo sum(),'<br/>',sum(),'<br/>',sum();

static声明的变量被多次调用所共享,其结果会保存在下一次的函数调用中

预定义变量01
$GLOBALS/$_SERVER/$_POST/$_GET

$GLOBALS 全局变量数组

$siteName = 'php中文网';
//俩种方式访问全局变量
echo $siteName;
echo '<br/>';
echo $GLOBALS['siteName'];

$_SERVER 当前执行环境的信息

print_r($_SERVER);

== $_GET 获取URL地址中的变量 ==

//http://www.phpstudy.net/phpch/chapter01/code/php/var06.php?name=peter&age=19
echo '<pre>';
print_r($_GET);
echo '<pre/>';
//访问name值
echo $_GET['name'];
/*
Array
(
    [name] => peter
    [age] => 19
)
peter
*/

$_POST 获取表单通过POST方式发送的数据

$register = <<<'FORM'
<form action="" method="post">
  <label for="name">姓名:</label>
  <input type="text" name="name" id="name"/>
  <label for="pwd">密码:</label>
  <input type="password" name="pwd" id="pwd"/>
  <input type="submit" value="提交">
</form>
FORM;
echo $register;
echo '<pre>';
  print_r($_POST);
echo '</pre>';
cookie

写到客户端中的变量就是cookie
为什么要用cookie
服务器需要对用户的身份进行识别,而cookie就是用于识别的
cookie由谁创建
cookie由浏览器创建,用于识别访问者,cookie服务其上的应用来设置

setcookie()函数有五个参数
1.名称 2.值 3.过期时间 4.生效的应用范围 5.域名

setcookie('siteName', 'www.php.cn');
echo $_COOKIE['siteName'];
cookie例子

login.php

<?php
if (isset($_GET['action'])) {
	if ($_GET['action'] == 'login') {
		if($_POST['name']=='admin' && $_POST['pwd']==123456){
			setcookie('userName',$_POST['name'],time()+3600*24);
			header('Location:index.php');
		} else {
			echo '<script> alert("您输入了错误的用户名或密码!");</script>';
		}
	} elseif ($_GET['action']=='logout') {
		setcookie('name','',time()-3600);//注销cookie
	}
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>用户登录</title>
</head>
<body>
	<form action="<?php echo $_SERVER['PHP_SELF'] ?>?action=login" method="post">
		<fieldset>
			<legend>用户登陆:</legend>
			<label for="name">用户名:</label>
			<input type="text" name="name" id="name"/>
		    <label for="pwd">密码:</label>
			<input type="password" name="pwd" id="pwd"/>
			<input type="submit" value="提交">
		</fieldset>
	</form>
</body>
</html>

index.php

<?php
if(!isset($_COOKIE['userName'])){
	header('Location:login.php');
} else {
	echo '欢迎新学员:'.$_COOKIE['userName'];
	echo "php中文网";
}
session
<?php
session_start();//打开一个会话,在客户端浏览器创建一个session_id
// echo session_id();
$_SESSION['userName'] = 'Peter';
$_SESSION['domain'] = 'www.php.cn';

echo $_SESSION['userName'];
//userName|s:5:"Peter";domain|s:10:"www.php.cn";
//sessio名|类型:长度:值

//删除部分session
unset($_SESSION['userName']);
//删除所有session
session_destroy();