作业内容:
- 搭建出php开发环境(不必提交)
- 变量与常量的区别与创建,访问方式
- 变量过滤器的常用函数与用法(实际演示)
变量常量的区别与创建
变量
定义:在PHP中变量由$定义。
基本原则:先申明,再使用。
赋值:
第一次赋值:初始化
第二次赋值:更新
销毁:
unset($test);
$test = null;// 销毁,只适用于对象类型的变量
说明:变量名区分大小写。变量支持中文但不推荐。
意义:变量是临时存储数据的容器,变量是实现数据复用的手段
可变变量:
$mail = "test";
$$mail = "user@user.com"
echo $test; ————> 输出user@user.com
变量的检测与删除:
isset() 返回值类型 bool
unset() 没有返回值
empty() 检测变量是否为空
变量数据类型:
基本类型:单值
字符串string
数值
布尔 true or false
复合类型:由基本类型组成,一个变量对应一组数据
$arr = ['电脑', 5900, false];
对象:
$obj = new stdClass;
$obj->name = 'peter zhu';
$obj->age = 88;
print_r($obj);
特殊类型:
$test=null
资源类型:
$f = fopen('demo5.php', 'r');
其他:
变量是没有类型的,类型由值决定
var_dump(): 变量的完整信息
var_export:返回变量的字符串表示(源码)
命名规则:
必须使用字母或下划线开始,后面允许使用数字, "_", "[a-zA-Z]","[0-9]"
类型转换:参见手册
常量
定义常量
const N = XXX //编译时定义常量
define('name','value') //运行时定义常量
赋值:
在脚本执行期间该值不能改变
命名规则:
<?php
// 合法的常量名
define("FOO", "something");
define("FOO2", "something else");
define("FOO_BAR", "something more");
// 非法的常量名
define("2FOO", "something");
// 下面的定义是合法的,但应该避免这样做:(自定义常量不要以__开头)
// 也许将来有一天PHP会定义一个__FOO__的魔术常量
// 这样就会与你的代码相冲突
define("__FOO__", "something");
?>
魔术常量:
| 序号 | 魔术常量 | 描述 |
| ---- | --------------- | ---------------------- |
| 1 | `__LINE__` | 文件中的当前行号 |
| 2 | `__FILE__` | 文件的完整路径和文件名 |
| 3 | `__DIR__` | 文件所在目录 |
| 4 | `__FUNCTION__` | 当前的函数名称 |
| 5 | `__CLASS__` | 当前类名称 |
| 6 | `__TRAIT__` | 当前`Trait`名称 |
| 7 | `__METHOD__` | 当前类方法名称 |
| 8 | `__NAMESPACE__` | 当前命名空间名称 |
作用域
引用:https://learnku.com/articles/39709
//PHP 变量作用域
local
global
static
parameter
//局部作用域、全局作用域
<?php
$x = 50; // 全局变量
function myTest()
{
$y = 100; // 局部变量
}
//PHP global 关键字
//global 关键字用于函数内访问全局变量。
//在函数内调用函数外定义的全局变量,可以在函数中的变量前加上 global 关键字。
<?php
$x = 50;
$y = 100;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // 输出 150
PHP 将所有全局变量存储在一个名为 $GLOBALS 的数组中。
所以上述代码可以换一种写法:
<?php
$x = 50;
$y = 100;
function myTest()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
//PHP Static 作用域
//PHP 当一个函数完成时,它的所有变量通常都会被删除。为了有些局部变量不被删除,可以在第一次声明变量的时候使用 static 关键字。
<?php
function myTest()
{
static $x = 0;
echo $x;
$x++;
echo PHP_EOL;
}
myTest();
myTest();
myTest();
//参数作用域 (形参)
//参数声明作为函数声明的一部分。
<?php
function myTest($x)
{
echo $x;
}
myTest('Galois');
myTest(8888);
//小补充:
//打印数组方式:
echo '<pre>';
print_r($arr);
————————————————
原文作者:Galois
转自链接:https://learnku.com/articles/39709
版权声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请保留以上作者信息和原文链接。
变量过滤器
filter_var() 通过一个指定的过滤器来过滤单一的变量
filter_var_array() 通过相同的或者不同的过滤器来过滤多个变量
filter_input() 获取一个输入变量,并对它进行过滤
filter_input_array 获取多个输入变量,并通过相同的或者不同的过滤器对它们进行过滤
实例:
<?php
$int = 123;
if(!filter_var($int, FILTER_VALIDATE_INT)) {
echo ("Integer is not valid");
}else {
echo ("Integer is valid");
}
?>
上面的代码使用了”FILTER_VALIDATE_INT”过滤器来过滤变量。
由于这个整数是合法的,因此代码的输出是:”Integer is valid”
是作业也是回看笔记,老师手下留情!