tips: 为什么纯php文档,禁止写结束标签
tips: 变量声明规则
必须以”$”为变量名前缀
变量名必须是一个合法的标识符: 英文字母,数字,下划线,且禁止数字开头
合法: $name, $num1, $_id
非法: $user@name, $123abc, $my-email,
数据类型
是数据运算的基本要求,不同类型的数据运算无意义
php数据类型分为三大类: 基本类型,复合类型, 特殊类型
布尔类型:
有两个返回值true = 1 , false = 0
<?php
$passed = true;
echo $passed;
?>
返回值= 1
gettype() 函数用于获取变量的类型。
<?php
echo gettype($passed);
?>
返回值= boolean
var_export() 函数用于输出或返回一个变量,以字符串形式表示。
<?php
$passed = '123';
$res = var_export($passed, true);
echo $res;
?>
返回值= '123'类型 string
var_dump()可以同时输出变量的值与类型,还可以像echo 一样同时打印多个
var_dump()只用于开发环境,不能用于生产环境
<?php
$passed = '123';
var_dump($passed);
?>
返回值= string(3) "123"
数值类型
<?php
$age = 30;
$salary = 4567.89;
var_dump($age);
var_dump($salary); ?>
返回值= int(30) float(4567.89)
字符串类型:必须要使用”单引号”或”双引号”做为定界符
<?php
$email = "admin@php.cn";
echo '邮箱: ', $email;
?>
返回值=email: 邮箱: admin@php.cn
2.复用类型
数组
<?php
// 数组
$res = [1,'admin','123456'];
// 数组索引默认从0开始进行递增
echo 'id = ', $res[0];
echo 'name = ', $res[1];
echo 'pwd = ', $res[2];
?>
返回值如下:
id = 1
name = admin
pwd = 123456
$res= ‘admin’
对象
写个容器将上面的代码单元进行封装,这个容器就是:对象
使用对象的本质是代码复用
对象模板: 类
<?php class a {
// 变量=>属性
private $a = 1;
private $b = 2;
// 函数 => 方法
public function sum() {
return $this->a . ' + ' . $this->b . ' = ' . ($this->a + $this->b);
}
}
$obj = new a();
echo $obj->sum();
?>
返回值如下: 1 + 2 = 3
临时转换:(int),(string),(array),(object)
自动转换:根据操作符对操作数的类型要求进行
强制转换: settype()
数值类型(int)
<?php $id =1; var_dump((int)$id); ?>
返回类型: int(1)
字符串类型(string)
<?php $name = 123; var_dump((string)$name); ?>
返回类型: string(3) "123"
数组类型(array)
<?php $name = '123'; var_dump((array)$name); ?>
返回类型: array(1) { [0]=> string(1) "3" }
可以用数组的方式访问
<?php $name = '123'; var_dump((array)$name[2]); ?>
返回类型: array(1) { [0]=> string(1) "3" }
对象类型(object)
<?php $obj = new class{ }; var_dump((object)$obj); ?>
返回类型: object(class@anonymous)#1 (0) { }
类型检测
标量:is_int(),is_string(),is_bool()
标量:理解为”单值”,例如: 100, ‘php’, true
is_int():数值型检测
<?php $id = 123; echo is_int($id)?'数值型':'不是数值型'; ?>
返回: 数值型
is_string()字符串检测
<?php $name = 'php'; echo is_string($name)?'字符串型':'不是字符串型'; ?>返回: 字符串型
is_bool()检测
<?php echo is_bool(true); ?>
返回: 布尔型
复合:数组和对象is_array(),is_object()
is_array()数组检测
<?php $arr = [1,2,3]; echo is_array($arr)?'数组类型':'不是数组型'; ?>
返回: 数组类型
is_object()对象型检测
<?php $obj = new class{}; echo is_object($obj)?'对象型':'不是对象'; ?>
返回: 对象型
特殊:is_null(),is_resource()
is_scalar(): 检测变量类型是否是标量
标量: 理解为”单值”, 100, ‘php’, true
不是标量: [1,2,3], new class{}
<?php var_export(is_scalar(1)); ?> true
仅允许使用: 英文字母(a-z,A-Z),数字(0-9),下划线(_)或他们的组合 不允许使用数字开头 必须使用”$”美元符为前缀 严格区分大小写 驼峰命名法
变量除了要满足以上的要求外,还有特殊性
变量必须要用”$”为前缀例如: $name
严格区分大小写例如:$name 与 $NAME这就是完全是两个不同的变量
变量赋值
$color = 'red';
引用赋值
引用赋值其实就是给原始变量起一个别名,并未创建新变量
只需在变量前加上&就可以了
<?php $name = '张三'; $name1 = &$name; $name ='李四'; echo $name1 ?>
这是输出的是: 李四
超全局变量: 数组,任何地方都可以访问,不受作用域限制
$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: 通过环境方式传递给当前脚本的变量的数组
$GLOBALS超全局变量使用方法
<?php
$name ='admin';
$pwd ='123456';
printf('name = %s, pwd = %s', $GLOBALS['name'], $GLOBALS['pwd']);
?>
输出: name = admin, pwd = 123456
$_SERVER: 服务器和执行环境信息
‘IP: ‘. $_SERVER[‘REMOTE_ADDR’];
‘浏览器: ‘. $_SERVER[‘HTTP_USER_AGENT’];
‘脚本绝对路径 = ‘. $_SERVER[‘SCRIPT_FILENAME’];
‘脚本相对路径 = ‘. $_SERVER[‘SCRIPT_NAME’];
‘当前脚本名称 = ‘. $_SERVER[‘PHP_SELF’];
‘查询字符串 : ‘. $_SERVER[‘QUERY_STRING’];
‘PATH_INFO = ‘. $_SERVER[‘PATH_INFO’];
‘URI: ‘ . $_SERVER[‘REQUEST_URI’];
$_GET[‘id’];
$_POST[‘name’];
常量
用 define(): 函数;和 const: 关键字;来定义常量
是固定的值,一旦创建不可更新,不可删除
常量不是变量,前面不要加” $ “
常量推荐全部大写,多个单词之间用下划线连接
1.define()函数
<?php
define('PATH',$_SERVER['SCRIPT_FILENAME']);
echo PATH; ?>
输出当前脚本的绝对路径: D:/phpstudy_pro/WWW/14php/a/php/view/5.php
2.const 关键字
const 只支持字面量,不允许表达式
<?php
const NATION = '中国';
echo '国籍:' .NATION;
?>
输出: 国籍:中国