前端PHP入门-005-爱情是常量还是变量

常量

常——汉语字面为:长久,经久不变。

常量那就好翻译了:长久不变的值。

常量的使用范围非常广泛

我们在以后,定义我们的工作目录、定义一些特点的帐户密码、版本号等我们都会使用到常量。所以这一块的知识,非常重要。

常量在代码中的定义、书写方式:

define(常量名,常量值)

规则说明

常量值只能为上一章中我们讲到的标量

  1. 常量名可以小写,但是通常大写
  2. 常量名可以不加引号,但是通常加上引号
  3. 在字符串中调用常量的时候,必须在引号外面
  4. 常量名建议只用字母下划线

代码实验室

  1. 定义和调用一次常量试试
  1. <?php
  2. define(‘MY_NAME‘,‘码迷码迷吽‘);
  3. //页面输出
  4. echo MY_NAME;
  5. //下面是错误的调用方式
  6. echo ‘我的名字是MY_NAME‘;
  7. //正确的调用方式该这么写
  8. echo ‘我的名字是‘ . MY_NAME;
  9. ?>
  1. 注意项目实验
  1. <?php
  2. //其实可以小写,但是不好区分,所以我们规定通常大写
  3. define(‘pangge‘,true);
  4. echo pangge;
  5. //常量可以在外面不加引号
  6. define(PANG,‘不要对未来迷茫,迷茫的时候静下心来coding‘);
  7. echo PANG;
  8. //---------------上面的代码建议忘记-------------------//
  9. define(‘PANGSIR‘,‘coding很难,找个地方!‘);
  10. echo PANGSIR;
  11. //只能用标量 -- 去看看数据类型那章
  12. //我在后面用了一个数组,大家学一下就行,会报错的哟
  13. define(‘BIAO‘,array(1,2,3));
  14. ?>

系统常量

简单接触几个系统常量,内置的常量很重要

常量 说明
LINE 当前所在的行
FILE 当前文件在服务器的路径
FUNCTIOIN 当前函数名
CLASS 当前类名
METHOD 当前成员方法名
PHP_OS PHP运行的操作系统
PHP_VERSION 当前PHP的版本
TRAIT Trait 的名字,php5.4新加
DIR 文件所在的目录
NAMESPACE 当前命名空间的名称(区分大小写)

defined()函数来做安全机制

简单看,简单报,不用掌握

defined()我们来学习这种用法,主是是为了防止其他人绕过安全检查文件。

  • 函数:defined(常量)
  • 功能:向函数的括号后面传入常量,如果常量定义了就返回true,否则返回false

【情景模拟】假设,我们的这套在线电子商城的软件需要付钱,检查是否付费是通过对软件授权检查来完成的,而文件version.php中就有检查授权的功能,我们在软件中规定,没有授权检查文件version.php就不能使用这个软件。所有的代码都包含了version.php。并且为了防止有人盗版,我还可以把version.php的代码进行了加密

  1. 一个文件中间有版本号,版本声明和授权声明。文件名为version.php
  2. 一个文件中有具体的业务功能。例如:用户注册/登录等,文件名为users.php


我们该怎么做呢?——也就是说不包含 version.php文件就不让,执行users.php之后的代码。

version.php文件

  1. <?php
  2. //此处是检查是否是否授权的业务部份代码xxxx
  3. define(‘AUTH‘,true);
  4. //略过模拟代码xxx行,验证等等
  5. ?>

users.php文件

  1. <?php
  2. //尝试将include ‘version.php‘这一行代码注释后再执行看看,对比结果
  3. include ‘version.php‘;
  4. if(!defined(‘AUTH‘)){
  5. echo ‘非法!非法!你尝试跳过授权文件‘;
  6. exit;
  7. }
  8. //模拟后面用户注册和用户登陆的代码xxx行
  9. echo ‘用户注册‘;
  10. ?>

实验结果可知:version.php必须要包含 ,不然不会显示后面的echo ‘用户注册‘;

include 很重要

defined 很重要



# 可变变量

可变变量,这个词解释的太过于高大上,又叫作变量的变量。

可变变量其实就是——已声明的变量前,再上变量符

代码:

  1. <?php
  2. //定义了一个变量叫作 $pang 将$pang这个变量的值设为字符串的sir
  3. $pang = ‘sir‘;
  4. //定义了一个【变量】$sir。将他的值设置为胖先生
  5. $sir = ‘胖先生‘;
  6. //$$pang 就是`可变变量`:在已声明的变量$pang前又加上了一个变量符
  7. echo $$pang;
  8. ?>

代码解释

  1. $$pang
  2. ${$pang} 分成两块来看
  3. ${‘pang‘} 把变量$pang解释成了sir
  4. $sir 而$sir也是一个变量对应的值是:胖先生

猜一猜,(^__^) 嘻嘻……

  1. <?php
  2. $pang = ‘sir‘;
  3. $sir = ‘wo‘;
  4. $wo = ‘big‘;
  5. $big = ‘love‘;
  6. $love = ‘wu‘;
  7. $wu = ‘di‘;
  8. $di = ‘大爱无敌,请打赏‘;
  9. //别运行,自己去推理一下代码。也写几个可变变量玩玩吧!
  10. echo $$$$$pang;
  11. ?>

偷偷说一句: WEB前端的各位学生,看一看就行了!

外部变量

别问为什么?就像你为什么要吃饭的问题一样?

PHP的外部变量是PHP在使用过程中规定好的一些变量。

这个变量的规定是这样规定的,就这样使用。

代码实验室

1.经典示例:注册 user.html

  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <form action="reg.php" method="get">
  6. <input type="text" name="account" />
  7. <input type="password" name="password" />
  8. <input type="submit" value="提交数据" />
  9. </form>
  10. </body>
  11. </html>

没有什么可说的:

在这段代码的主要意思是把用户和密码,采用get方法,将数据发送给reg.php(在上面代码的第6行规定的)。

reg.php想办法接收用户传过来的 account 和 password 这两个值

注:

1.注意地址栏的变化

2.表单想要传递数据,控件包含name属性

2.外部变量:$_GET

$_GET 的主要作用是将得到get传值的数据。

method=‘get‘ 这就是get请求

程序处理:reg.php

  1. <?php
  2. //$_GET后面加上中括号,将 account 作为字符串放在中括号里面,就得到了表单里面的<input type="text" name="account" /> 的值
  3. $account = $_GET[‘account‘];
  4. echo $account.‘<br />‘;//胶水
  5. //$_GET[‘password‘] 得到表单<input type="text" name="password" /> 的值
  6. $password = $_GET[‘password‘];
  7. echo $password.‘<br />‘;
  8. ?>

结果说明:

图文代码分析

  1. reg.php后面跟了一个?(问号)
  2. 表单里面的 account 变在了地址栏里面
  3. 表单面 account 的值输入的是 pangsir,在 account 后面跟了个=(等号)输入的值

    account(名字)= pangsir(值) 后面的密码是 password(名字)=lovephp(值),中间有&(and符)分开

    密码是可见的,那怎么样保证安全呢。让我在注册的过程当中,密码不在地址栏里面被人看到呢?

这个时候我们需要使用到post传值,post传值是在地址栏中不可见的

同样上面例子的代码我们进行修改,html代码如下:

  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <!-- 这一行method 对应的值改为了post -->
  6. <form action="reg.php" method="post">
  7. <input type="text" name="account" />
  8. <input type="password" name="password" />
  9. <input type="submit" value="提交" />
  10. </form>
  11. </body>
  12. </html>

第二个外部变量: $_POST

  1. <?php
  2. $account = $_POST[‘account‘];
  3. echo ‘您的输入的账号为: ‘.$account.‘<br />‘;
  4. $password = $_POST[‘password‘];
  5. echo ‘请保管好你的密码: ‘.$password.‘<br />‘;
  6. ?>

运行结果:

代码继续说:

  1. reg.php后的?(问号)不见了。后面的account和password也不见了。那他怎么传递数据的呢?
  2. 它是通过我们看不见的浏览器的请求头文件传递的数据。所以在URL(网址)栏不可见。

:附录中有如何通过火狐浏览器的firebug查看传递结果的演示过程。这一块都是HTTP协议规定的传送方式。



除此之外,我们还有$_REQUEST来接收数据。现在我们这样处理:

将php代码段中的POST全改为" role="presentation" style="position: relative;">POST全改为POST全改为_REQUEST,代码如下:

第三个外部变量: $_REQUEST

  1. <?php
  2. $account = $_REQUEST[‘account‘];
  3. echo $account.‘<br />‘;
  4. $password = $_REQUEST[‘password‘];
  5. echo $password.‘<br />‘;
  6. ?>

分别测试get和post请求,使用这种方式

通过上面的实验你会发现$_REQUEST即可以接收get传值也可以接收post传值。

邪恶了!大小通吃!

超全局外部变量

全局变量名 功能说明
$_COOKIE 得到会话控制中cookie传值
$_SESSION 得到会话控制中session的值
$_FILES 得到文件上传的结果
$_GET 得到get传值的结果
$_POST 得到post传值的结果
$_REQUEST 即能得到get的传值结果,也能得到Post传值的结果

了解含义,以后讲解超全局的含义


变量引用

变量引用很多老师喜欢来用C语言的指针来去讲解。

我们作为有这么多年开发和教学经验的人来说——大多数学习PHP的人来说根本不了解C语言。

使用C语言一指针来讲解变量引用,我们觉得画蛇填足。并且,不利于没有C语基础的朋友们学习。

关于变量引用的知识点,请以我们的讲解为理解的基准:

我们来测试两端,方便我们的测试

第一段代码

  1. <?php
  2. $fo = 5;
  3. //$fo的值为5,将5赋值
  4. $bar = $fo;
  5. //$bar的值原来为5,现在将值改为6
  6. $bar = 6;
  7. //$bar的结果为6
  8. echo $bar.‘<br />‘;
  9. //$fo的结果为5
  10. echo $fo.‘<br />‘;
  11. ?>

第二段代码

  1. <?php
  2. $fo = 5;
  3. //注意,加上了一个&符哟
  4. $bar = &$fo;
  5. $bar = 6;
  6. //$bar的结果为6
  7. echo $bar.‘<br />‘;
  8. //$fo的结果为6
  9. echo $fo.‘<br />‘;
  10. ?>

为什么两个结果都变成6了呢?

我经常跟大家这样来举例。我们可以这样来想象:一个变量名,对应了一个数据值

如下图:

而加上&(and 符后),把变量指向同一个存值空间了,如下图:

也就是不论fo或" role="presentation" style="position: relative;">fo或fo或bar的值如何发生变化,fo变" role="presentation" style="position: relative;">fo变fo变bar也变,bar发生变化," role="presentation" style="position: relative;">bar发生变化,bar发生变化,fo也会发生变化。

来自为知笔记(Wiz)

时间: 2024-10-06 09:18:06

前端PHP入门-005-爱情是常量还是变量的相关文章

Java从入门到放弃——02.常量、变量、数据类型、运算符

本文目标 理解什么是常量,什么是变量 认识八大基本数据类型 了解算数运算符.赋值运算符.关系运算符.逻辑运算符.位运算符.三元运算符 1.什么是常量与变量? 常量是相对静止的量,比如整数:1,2,3 字符:‘a’,‘b‘ 字符串:“Halloworld” 变量是可以改变的量,比如:   x = 13://给x赋值13, x = 14 ://给x赋值14 此时x的值可以人为地改变,所以可以称x为一个变量 2.八大基本数据类型 整数: 字节型 byte  //用来存储字节(整数),占1个字节(-12

前端制作入门知识

原文链接:http://caibaojian.com/frontend-base.html 前端制作入门知识 A-A+ 前端博客•2015-08-18•前端开发•CSS | 前端基础•2020View1 文章目录 一.名词解释 二.文本格式化 三.表单表格 四.文本格式化 五.CSS布局 六.html5视频音频 七.一些约定 八.命名空间 九.基本设置-public.css 十.框架设置 来自百度文库:web前端学习总结(精华版),里面讲了许多的知识,非常适合刚进入前端的童鞋,就算一些有点基础的

前端快速入门

前端快速入门 第一篇 数据基本操作 [01] 数据库基本操作 [02] 数据库my.ini配置 [03] mysql支持的数据类型 [04] 表修改.表的引擎.约束条件 [05] 表之间的关系 [06] 单表多表子查询 [07] 子查询|视图|事务 第二篇 命令整合版 [01] 数据库my.ini配置 [02] 数据库连接与密码修改 [03] 数据库的基本操作 [04] 数据库表与字段和引擎操作 [05] 表的约束创建和增删改查 [06] 多表关系一对一 [07] 多表关系一对多和多对多 [08

swift 简介和常量与变量 --- swift 入门

一.思维导图 二. 代码 //创建UIView 和按钮 let views = UIView(frame: CGRect(x:20, y: 20, width: 100, height: 100))//FIXME:改变viewsframe views.backgroundColor = UIColor.yellow view.addSubview(views) //MARK: 创建一个按钮 let Button2 = UIButton(type: .contactAdd) Button2.bac

C语言入门教程-(4)常量和变量

1.常量和变量的概念 程序执行过程中其值不能发生改变的量叫做常量,其值能发生改变的量叫做变量.常量可以直接使用,而变量则必须先定义后才能使用,否则编译器会报错. 2.常量和变量的命名规范 在介绍常量和变量的命名规范之前,我们先了解一下什么是标识符和关键字. 1)标识符 标识符,用来标识符号常量名.变量名.函数名.数组名.文件名.类名.对象名等.简单的将就是大家取的名字~~有效标识符的构成规则如下: 1)第一个字符必须是字母(大小写都行)或下划线,不能是数字; 2)后跟字母(大小写都行).下划线或

Tensorflow机器学习入门——常量、变量、placeholder和基本运算

一.这里列出了tensorflow的一些基本函数,比较全面:https://blog.csdn.net/M_Z_G_Y/article/details/80523834 二.这里是tensortflow的详细教程:http://c.biancheng.net/tensorflow/ 三.下面程序是我学习常量.变量.placeholder和基本运算时形成的小函数 import tensorflow as tf print(tf.__version__)#打印Tensorflow版本 print(t

【Go语言】【3】GO语言常量与变量

一般的语言入门都会讲一堆背景和特性,这样做的目的是为了能让学习者对该语言有一个大概的认识,这也是为何有人推荐正确的读书方法是先粗略地读一遍,然后再详细地读一遍,但这里我想直接进入细节,不是因为个性,而是因为常量和变量是编程语言最基本的组成元素. 一.字面常量 以前在编程时,老员工总是说不要在代码中出现魔鬼数字,什么是魔鬼数字呢?就是在代码中直接写死且只出现一次的数字,例如: func calculatePrice(price float32) float32{ return price * 0.

?Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数

Swift语言中为外部参数设置默认值可变参数常量参数变量参数输入输出参数 7.4.4  为外部参数设置默认值 开发者也可以对外部参数设置默认值.这时,调用的时候,也可以省略参数传递本文选自Swift1.2语言快速入门v2.0. [示例7-11]以下的代码就为外部参数toString.withJoiner设置了默认的参数"Swift"和"---".代码如下: import Foundation func join(string s1: String, toString

JavaScript语言常量和变量

我们在上一章中介绍使用JavaScript编写一个HelloJS的小程序,其中我们就用到变量.常量和变量是构成表达式的重要组成部分.常量在声明和初始化变量时,在标识符的前面加上关键字const,就可以把该指定为一个常量.顾名思义,常量是其值在使用过程中不会发生变化,实例代码如下:const NUM=100;NUM标识符就是常量,只能在初始化的时候被赋值,我们不能再次给NUM赋值.变量在JavaScript中声明变量,是在标识符的前面加上关键字var,实例代码如下:var scoreForStud