PHP基础

环境搭建

直接用的phpstudy,省心省力。

写代码用的是editplus;出现了中文乱码的问题,解决方法如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CtzSU4Ut-1657783674641)(C:\Users\18084\Desktop\fh\f3e839f083f243cd844c93123fc3f35b.png)]

改为UTF-8

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NCP6pqnk-1657783674644)(C:\Users\18084\Desktop\fh\a2c3450146474d5f886f562fa951275f.png)]

工具–首选项–文件–默认文本编码也改为UTF-8

PHP基础

php标记

//ASP标记:
<% php代码 %>
//短标记
<? Php 代码 ?>
//脚本标记
<script language="php">
    php代码
</script>
//标准标记(常用)
<?php php代码 ?>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ixMQsQEi-1657783674644)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]

php注释

行注释: //

​ #:与//一样
块注释: /* */

php大小写敏感

在 PHP 中,所有用户定义的函数、类和关键词(例如 if、else、echo 等等)都对大小写不敏感;

但对变量敏感

PHP 变量

PHP 变量规则:

  • 在PHP中不需要任何关键字定义变量(赋值)
  • 变量以 $ 符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
  • 变量名称对大小写敏感($y 与 $Y 是两个不同的变量)
//定义变量
$var1;
$var2 = 1;
//访问变量
echo $var2;
//修改变量
$var2 = 2;
//删除变量:使用unset(变量名)
unset($var2);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ygbfPxp4-1657783674645)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]

PHP 预定义变量 - 超全局变量

PHP 中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域中都可用。在函数或方法中无需执行 global $variable; 就可以访问它们。(预定义变量都是数组)

这些超全局变量是:

$_GET:获取所有表单以get方式提交的数据
$_POST: POST提交的数据都会保存在此
$_REQUEST: GET和 POST提交的都会保存
$GLOBALS:PHP中所有的全局变量
$_SERVER:服务器信息
$_SESSION: session会话数据
$_cOOKIE: cookie会话数据
$_ENV:环境信息,
$_FILES:用户上传的文件信息

可变变量:

如果一个变量保存的值刚好是另外一个变量的名字,那么可以直接通过访问一个变量得到另外一个变量的值:在变量前面再多加一个$符号。

<?php
	$a = 'b';
	$b = 'aa';
	echo $$a;//输出aa

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ydHlWDUO-1657783674645)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]


变量传值

将一个变量赋值给另外一个变量:变量传值

值传递:将变量保存的值赋值一份,然后将新的值给另外一个变量保存(两个变量没有关系)

//值传递
$a = 1;
$b = $a;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6TYKyCiR-1657783674645)(C:\Users\18084\AppData\Roaming\Typora\typora-user-images\image-20220703180019026.png)]

引用传递:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间(两个变量是同一个值)

//引用传递
$b = &$a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cLLaQhqt-1657783674646)(C:\Users\18084\AppData\Roaming\Typora\typora-user-images\image-20220703180220349.png)]

内存分区

在内存中,通常有以下几个分区:

栈区:程序可以操作的内存部分(不存数据,运行程序代码),少但是快

代码段:存储程序的内存部分(不执行〉

数据段:存储普通数据(全局区和静态区)

堆区:存储复杂数据,大但是效率低


PHP 常量

常量类似变量,但是常量一旦被定义就无法更改或撤销定义。

在PHP中常量有两种定义方式(5.3之后才有两种)

1、使用定义常量的函数: define(‘常量名’,常量值)(可选的第三个参数规定常量名是否对大小写敏感。默认是 false。)

2、5.3之后才有的: const 常量名=值;

<?php 
    define("-_-", "3.1415926"); 
    const Pi = 3.14;
    echo constant('-_-');
    echo Pi; 
?>

注:

  • 常量名第一个字母一般大写;
  • 常量命名的规则比变量要松散,可以使用一些特殊字符,该方式只能使用define定义;输出特殊常量名要用constant(‘常量名’)
  • Define和const定义的常量是有区别:在于访问权限区别。

系统常量:

系统帮助用户定义的常量,用户可以直接使用

常用系统常量

常用的几个系统常量:

PHP_VERSION: PHP版本号

PHP_INT_SIZE:整形大小

PHP_INT_MAX:整形能表示的最大值

系统魔术常量

在PHP中还有一些特殊的常量,他们有双下划线开始+长两名+双下划线结束,这种常量称之为系统魔术常量:魔术常量的值通常会跟着环境变化,但是用户改变不了

_DIR_:当前被执行的脚本所在电脑的绝对路径v
_FILE_:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)

**_LINE_😗*当前所属的行数

_NAMESPACE_:当前所属的命名空间s_CLASS_:当前所属的类

_METHOD_:当前所属的方法


数据类型

数据类型: data type,在 PHP中指的是存储的数据本身的类型,而不是变量的类型。PHP是一种弱类型语言,变量本身没有数据类型。

PHP的八种数据类型

简单(基本)数据类型:

  1. 整型:int/integer

  2. 浮点型: float/double

  3. 字符串型: string

  4. 布尔类型: bool/boolean

复合数据类型

  1. 对象类型: object,存放对象(面向对象)

  2. 数组类型: array,存储多个数据(一次性)

特殊数据类型

  1. 资源类型:resource,存放资源数据(PHP外部数据,如数据库、文件)
  2. 空类型:NULL,只有一个值就是NULL(不能运算)

类型转换

转换方式:

  1. 自动转换:系统根据需求自己判定,自己转换(用的比较多,效率偏低)

  2. 强制(手动)转换:认为根据需要的目标类型转换

强制转换规则:

在变量之前增加一个括号**()**,然后在里面写上对应类型:int/integer…

其中NULL类型用到unset()

其他类型转数值的说明

1、布尔true为1,false为0;

2、字符串转数值有自己的规则

2.1以字母开头的字符串,永远为0;

2.2以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点

数据类型

通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型(相同结果为true,失败为false

是一组以 is_开头后面跟类型名字的函数:is…XXX(变量名)

  • Bool类型不能用echo 来查看,可以使用var dump结构查看

Var dump(变量1,变量2…)

Gettype(变量名):获取类型,得到的是该类型对应的字符串

Settype(变量名,类型):设定数据类型:与强制转换不同。

1、强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际存储的内容)

2、settype会直接改变数据本身

整数类型进制

整数类型
$a = 120;		//10进制
$a = 0b110;		//2进制,
$a = 0120;		//8进制
$a = Ox120;		//16进制
进制转换
Decbin():	十进制转二进制

Decoct():	十进制转八进制

Dechex():	十进制转十六进制

Bindec():	二进制转十进制

浮点型和布尔型

简单说明浮点数为什么同样的字节数存储数据,但是却能表示更大的数据呢?

00000000.00000000.00000000 00000000.→.11111111.11111111111111111111111(整形最大值:所有位都是有效数据)﹒

浮点数:红色7位算的结果是10的指数,后面三个字节存储表示具体数值。00000000 00000000 00000000 00000000 →11111111 11111111 11111111 1111111

Empty():判断数据的值是否为“空”,不是NULL,如果为空返回true,不为空返回

falselsset():判断数据存储的变量本身是否存在,存在变量返回true,不存在返回false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值