学习教程来源于:
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();