当前位置:网站首页>1-php学习笔记之数据类型
1-php学习笔记之数据类型
2022-08-03 19:14:00 【许我写余生ღ】
文章目录
前言
以下都是自己的一些学习笔记,可能有写的不对的地方,还望各位大佬体谅和加以指正。
PHP简述
PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器
")是一种通用开源脚本语言。
在一个php文件中可以包括以下内容:
- PHP 文件可包含
文本、HTML、JavaScript代码和 PHP
代码 - PHP 代码在服务器上执行,
结果以纯 HTML 形式
返回给浏览器 - PHP 文件的默认文件扩展名是 “
.php
”
php的使用:
- PHP 可以生成动态页面内容
- PHP 可以创建、打开、读取、写入、关闭服务器上的文件
- PHP 可以收集表单数据
- PHP 可以发送和接收 cookies
- PHP 可以添加、删除、修改您的数据库中的数据
- PHP 可以限制用户访问您的网站上的一些页面
- PHP 可以加密数据
PHP基本语法格式
PHP 脚本以 <?php 开始,以 ?>
结束
注释:
<?php
// 单行注释
/* 多行注释,跟java的注释方法相同 * */
?>
如何定义变量
在PHP中变量以 $
符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
如下:
$num = 3.14;
$str = "hello";
注意
:PHP的每行代码都需要;
结尾,不然会报错。
关键字static
在PHP中当一个函数完成时,它的所有变量通常都会被删除。
然而,有时候您希望某个局部变量不要被删除。
要做到这一点,请在您第一次声明变量时使用 static
关键字:
如下代码:
function test(){
static $n=0;
$n++;
echo "调用了一次".$n."\n";
}
test();test();test();
/* 打印 1 2 3 */
?>
一、PHP 数据类型
在PHP中有5种数据类型:
String
(字符串)Integer
(整型)Float
(浮点型)Boolean
(布尔型)Array
(数组)Object
(对象)NULL
(空值)
以上数据类型的定义方法如下:
<?php
$a = "字符串类型"; // 字符串
$b = 1234; // 整形
$c = -3.1415; // 浮点型
$d = 8E-3;
$e = true; // boolean类型
$f = array("A","B","C");// 数组类型
$arry = ['a', 'b', 'c'];
class obj{
// php对象的声明
var $num;
function name() {
}
}
$o = new obj(); // 对象实例化类型
$g = NULL; // NULL
// var_dump() 获取当前变量的数据类型,相当于python中的type()和JavaScript中的typeof()
var_dump($a); // string(15) "字符串类型"
var_dump($b); // int(1234)
var_dump($c); // float(-3.1415)
var_dump($d); // float(0.008)
var_dump($e); // bool(true)
var_dump($f); // array(3) {[0]=> string(1)"A"[1]=>string(1)"B"[2]=>字符串(1)"C"}
var_dump($o); // object(obj)#1 (1) { ["num"]=> NULL }
var_dump($g); // NULL
?>
常量
常量:常量是一个简单值的标识符。该值在脚本中不能改变。(在整个脚本中都能使用)
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
设置常量,使用 define()
函数,函数语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
该函数有三个参数:
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
<?php
// 常量
define("CL", "这是一个全局常量", true);
echo CL; // 默认false,变量名区分大小写
echo cl; // true不区分大小写
?>
预定义常量
PHP预定义了许多常量,这些常量无需使用define()
函数定义,可直接在程序中使用。下面列举了一些常用的PHP预定义常量。
__FILE__
(FILE前后分别是两个下画线):当前正在处理的脚本文件名,若使用在一个被引用的文件中(include或require),那么 它的值就是被引用的文件,而不是引用它的那个文件。__LINE__
(LINE前后分别是两个下画线):正在处理的脚本文件的当前行数。PHP_VERSION
:当前PHP预处理器的版本,如5.4.16。PHP_OS
: PHP所在的操作系统的类型。如Linux
。TRUE
:表示逻辑真。FALSE:表示逻辑假。NULL:表示没有值或值不确定。DIRECTORY_SEPARATOR
: 表示目录分隔符,UNIX或Linux操作系统环境时的值为“/
”,
Window操作系统环境时的值为 “\
”。
例如:
<?php
echo __FILE__; // C:\WWW\www.test.com\demo5.php
echo "<br/>";
echo __LINE__; // 5
echo "<br/>";
echo PHP_VERSION; // 7.3.4
echo "<br/>";
echo PHP_OS; // WINNT
echo "<br/>";
echo DIRECTORY_SEPARATOR; // \
?>
整型
整数类型:保存整数数值(范围限制),4个字节存储数据。PHP中默认为有符号。
在PHP中提供四种
整形的定义方式,十进制定义,二进制定义,八进制定义和十六进制定义
$a = 120 //十进制
$a = 0b110 //二进制 0b 开头
$a = 0120 //八进制
$a = 0x120 //十六进制 0x 开头
// 使用echo输出时。默认输出为十进制
decbin() // 十进制转二进制
decoct() // 十进制转八进制
dechex() // 十进制转十六进制
bindec() // 二进制转十进制
bin2hex() //二进制转十六进制
字符串
字符串:字符串变量用于存储并处理文本。
<?php
$name='php';
//双引号 里面有变量 会 输出变量的值
$str ="这是 $name 的基础教学,欢迎来学习。";
//单引号 如果里面有变量都作为一个字符串处理
$str1 ='这是 $name 的基础教学,欢迎来学习。';
echo $str; // 这是 php 的基础教学,欢迎来学习。
echo $str1; // 这是 $name 的基础教学,欢迎来学习。
?>
我们可以看到双引号和单引号的输出并不一样,从这里我们就可以看出来在php中单引号和双引号还是有区别的。注意
:只有双引号才能直接在字符串中加变量,并且变量两侧都必须为空格。
在php中 .
号为字符串连接符,作用同python 中的 +
号一样。
<?php
// 字符串
$text1 = "hello";
$text2 = "world";
echo $text1 . " " . $text2; // "."是并置运算符(连接)
echo "返回字符串的长度:", strlen($text1); // 5
echo "返回子串的第一次位置:", strpos($text1, "l"); // 2
?>
Tips
:strlen()
函数返回字符串的长度, strpos(字符串,"查找的字符")
函数返回子串的第一次位置注意
:php中的索引也是从0
开始
字符的操作函数
addcslashes // 以 C 语言风格使用反斜线转义字符串中的字符
addslashes // 使用反斜线引用字符串
bin2hex // 函数把包含数据的二进制字符串转换为十六进制值
chop // rtrim 的别名
chr // 返回指定的字符
chunk_split // 将字符串分割成小块
convert_cyr_string // 将字符由一种 Cyrillic 字符转换成另一种
convert_uudecode // 解码一个 uuencode 编码的字符串
convert_uuencode // 使用 uuencode 编码一个字符串
count_chars // 返回字符串所用字符的信息
crc32 // 计算一个字符串的 crc32 多项式
crypt // 单向字符串散列
echo // 输出一个或多个字符串
explode // 使用一个字符串分割另一个字符串
fprintf // 将格式化后的字符串写入到流
get_html_translation_table // 返回使用 htmlspecialchars 和 htmlentities 后的转换表
hebrev // 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew)
hebrevc // 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew),并且转换换行符
hex2bin // 转换十六进制字符串为二进制字符串
html_entity_decode // Convert HTML entities to their corresponding characters
htmlentities // 将字符转换为 HTML 转义字符
htmlspecialchars_decode // 将特殊的 HTML 实体转换回普通字符
htmlspecialchars // 将特殊字符转换为 HTML 实体
implode // 将一个一维数组的值转化为字符串
join // 别名 implode
lcfirst // 使一个字符串的第一个字符小写
levenshtein // 计算两个字符串之间的编辑距离
localeconv // Get numeric formatting information
ltrim // 删除字符串开头的空白字符(或其他字符)
md5_file // 计算指定文件的 MD5 散列值
md5 // 计算字符串的 MD5 散列值
metaphone // Calculate the metaphone key of a string
money_format // 将数字格式化成货币字符串
nl_langinfo // Query language and locale information
nl2br // 在字符串所有新行之前插入 HTML 换行标记
number_format // 以千位分隔符方式格式化一个数字
ord // 转换字符串第一个字节为 0-255 之间的值
parse_str // 将字符串解析成多个变量
print // 输出字符串
printf // 输出格式化字符串
quoted_printable_decode // 将 quoted-printable 字符串转换为 8-bit 字符串
quoted_printable_encode // 将 8-bit 字符串转换成 quoted-printable 字符串
quotemeta // 转义元字符集
rtrim // 删除字符串末端的空白字符(或者其他字符)
setlocale // 设置地区信息
sha1_file // 计算文件的 sha1 散列值
sha1 // 计算字符串的 sha1 散列值
similar_text // 计算两个字符串的相似度
soundex // Calculate the soundex key of a string
sprintf // Return a formatted string
sscanf // 根据指定格式解析输入的字符
str_contains // Determine if a string contains a given substring
str_ends_with // Checks if a string ends with a given substring
str_getcsv // 解析 CSV 字符串为一个数组
str_ireplace // str_replace 的忽略大小写版本
str_pad // 使用另一个字符串填充字符串为指定长度
str_repeat // 重复一个字符串
str_replace // 子字符串替换
str_rot13 // 对字符串执行 ROT13 转换
str_shuffle // 随机打乱一个字符串
str_split // 将字符串转换为数组
str_starts_with // Checks if a string starts with a given substring
str_word_count // 返回字符串中单词的使用情况
strcasecmp // 二进制安全比较字符串(不区分大小写)
strchr // 别名 strstr
strcmp // 二进制安全字符串比较
strcoll // 基于区域设置的字符串比较
strcspn // 获取不匹配遮罩的起始子字符串的长度
strip_tags // 从字符串中去除 HTML 和 PHP 标记
stripcslashes // 反引用一个使用 addcslashes 转义的字符串
stripos // 查找字符串首次出现的位置(不区分大小写)
stripslashes // 反引用一个引用字符串
stristr // strstr 函数的忽略大小写版本
strlen // 获取字符串长度
strnatcasecmp // 使用“自然顺序”算法比较字符串(不区分大小写)
strnatcmp // 使用自然排序算法比较字符串
strncasecmp // 二进制安全比较字符串开头的若干个字符(不区分大小写)
strncmp // 二进制安全比较字符串开头的若干个字符
strpbrk // 在字符串中查找一组字符的任何一个字符
strpos // 查找字符串首次出现的位置
strrchr // 查找指定字符在字符串中的最后一次出现
strrev // 反转字符串
strripos // 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
strrpos // 计算指定字符串在目标字符串中最后一次出现的位置
strspn // 计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度。
strstr // 查找字符串的首次出现
strtok // 标记分割字符串
strtolower // 将字符串转化为小写
strtoupper // 将字符串转化为大写
strtr // 转换指定字符
substr_compare // 二进制安全比较字符串(从偏移位置比较指定长度)
substr_count // 计算字串出现的次数
substr_replace // 替换字符串的子串
substr // 返回字符串的子串
trim // 去除字符串首尾处的空白字符(或者其他字符)
ucfirst // 将字符串的首字母转换为大写
ucwords // 将字符串中每个单词的首字母转换为大写
vfprintf // 将格式化字符串写入流
vprintf // 输出格式化字符串
vsprintf // 返回格式化字符串
wordwrap // 打断字符串为指定数量的字串
<?php
$name='PHP';
//双引号 里面有变量 会 输出变量的值
//$str =" 这是 $name 的学习笔记,欢迎来学习。 ";
//单引号 如果里面有变量都作为一个字符串处理
//$str1 ='这是 $name 的学习笔记,欢迎来学习。';
$a='123456';
//echo $str." 一共有 ".strlen($a)."字符";
//去掉空格
//echo trim($str);
//echo $str1;
//查找字符串 返回位置
//echo strpos($str,'笔记');
//截取字符串
//echo substr($str,strpos($str,'笔记,'),strpos($str,'来学习'));
//md5 加密
//echo md5($a);
//通过下标 取字符的值
//echo $a[0];
//字符串替换函数
$a1=str_replace('1','0',$a);
echo $a1;
//遍历字符串
for($i=0;$i<=strlen($a);$i++){
echo $a[$i].'</br>';
}
?>
在php中定义函数使用关键字function
‘
<?php
function mb_str_split( $string ) {
// /u表示把字符串当作utf-8处理,并把字符串开始和结束之前所有的字符串分割成数组
return preg_split('/(?<!^)(?!$)/u', $string );
}
// 第一种遍历方法
for($i=0;$i<strlen($str);$i++) {
$k = $str[$i]; //输出乱码
}
// 第二种遍历方法
foreach (mb_str_split($str) as $c)
{
echo $c; //正常输出:中 文 测 试
}
?>
二、数组
数组是一个能在单个变量中存储多个值的特殊变量。
在 PHP 中,array()
函数用于创建数组:
<?php
array();
?>
在 PHP 中,有三种类型的数组:
- 数值数组 - 带有数字 ID 键的数组
- 关联数组 - 带有指定的键的数组,每个键关联一个值
- 多维数组 - 包含一个或多个数组的数组
数组的声明
<?php
$array1 = array();
$cars=array("Volvo","BMW","Toyota");//简单的数组
echo count($cars);//count()返回数组的长度
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");//关联数组
//其中包含多个键值对
echo "Peter is " . $age['Peter'] . " years old.";
foreach($age as $x=>$x_value)//关联数组的遍历方法
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
在PHP 中定义了多个数组排序的内置函数:
sort()
- 对数组进行升序排列rsort()
- 对数组进行降序排列asort()
- 根据关联数组的值,对数组进行升序排列ksort()
- 根据关联数组的键,对数组进行升序排列arsort()
- 根据关联数组的值,对数组进行降序排列krsort()
- 根据关联数组的键,对数组进行降序排列
数组的合并
<?php
$array1 =array('a','b','c');
$array2 = array('a1'=>'php','a2'=>'python','a3'=>'java');
$array3 = array_merge($array1,$array2);
?>
填加数组元素
array_push()
函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
<?php
array_push($array1,'d','e');
print_r($array1);
下表为空 自动添加参数
$array1[]='d';
有键值的
$array1['a4']='javasciprt';
?>
添加到指定位置
<?php
$array1 = array('a', 'b', 'c', 'd', 'e');
$array2 = array('x');
array_splice($array1, 3, 0, $array2); // 插入到位置3且删除0个
print_r($array1);
?>
array_splice
(数组,位置,删除几个,增加元素)
删除某一个元素
<?php
$array1 = array('a', 'b', 'c', 'd', 'e');
$array2 = array('x');
array_splice($array1, 3, 1);
print_r($array1);
?>
unset
销毁指定的元素
$array1 = array('a', 'b', 'c', 'd', 'e');
unset($array1[0]);
print_r($array1);
array_pop()
:将数组最后一个单元弹出(出栈)
修改数组中某个元素
$array1 = array('a', 'b', 'c', 'd', 'e');
$array1[0]='aa';
print_r($array1);
常用的数组函数
is_array // 判断是否为数组
count // 数组的元素数目
array_search // 在数组中搜索给定的值,如果成功则返回相应的键名
array_key_exists() // 在给定的 key 存在于数组中时返回 TRUE
array_unshift() // 将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变
array_shift() // 将array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。
array_unique() // 接受 array 作为输入并返回没有重复值的新数组。注意键名保留不变。 array_unique() // 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。
in_array // 检查数组中是否存在某个值 如果找到指定的值则返回 TRUE,否则返回 FALSE 。in_array() // 是区分大小写的。
边栏推荐
猜你喜欢
随机推荐
MySQL详细学习教程(建议收藏)
Force is brushed buckle problem for the sum of two Numbers
APT级全面免杀与企业纵深防御体系的红蓝对抗
云图说丨初识华为云微服务引擎CSE
【C语言学习笔记(七)】C语言重定向输入与输出
Postgresql snapshot optimization Globalvis new system analysis (performance greatly enhanced)
要想成为黑客,离不开这十大基础知识
awk语法-02-运算、数组、格式化输出
Postgresql source code (65) analysis of the working principle of the new snapshot system Globalvis
SQL server 实现触发器备份表数据
Protobuf Grpc使用异常 类型有未导出的方法,并且是在不同的软件包中定义
Postgresql-xl global snapshot and GTM code walking (branch line)
关于2022年度深圳市技术攻关重大项目的申报通知
Introduction to Cosine Distance
【微信小程序】NFC 标签打开小程序
CS免杀姿势
[Dataset][VOC] Rat dataset voc format 3001 sheets
2022年最新的Android面试大厂必考174题(附带详细答案)
Postgresql中的pg_memory_barrier_impl和C的volatile
力扣刷题之数组序号计算(每日一题7/28)