当前位置: 首页 > article >正文

PHP | php入门知识(数据类型、类型比较、常量、字符串、运算符)

一、数据类型

PHP 支持以下几种数据类型:

  • String(字符串)
  • Integer(整型)
  • Float(浮点型)
  • Boolean(布尔型)
  • Array(数组)
  • Object(对象)
  • NULL(空值)
  • Resource(资源类型)

1. 字符串

可以将任何文本放在单引号双引号

<?php $x = "Hello world!"; // 双引号echo $x;echo "<br>";   // 双引号$x = 'Hello world!'; // 单引号echo $x;
?>

结果:
在这里插入图片描述

2. 整数

注意:

  1. 整数可以是正数或负数
  2. 整型可以用三种格式来指定:
    • 十进制
    • 十六进制( 以 0x 为前缀)
    • 八进制(前缀为 0)
<?php $x = 5678;var_dump($x); // 正整数echo "<br>";$y = -234; // 负整数var_dump($y);echo "<br>";$z = 0x8c; // 十六进制var_dump($z);echo "<br>";$a = 047;  // 八进制var_dump($a);?>

输出结果:
在这里插入图片描述

3. 浮点型

浮点数是带小数部分的数字,或是指数形式(e或E后面加上一个整数n表示10的n次方)。

<?php $x = 18.635; // 带小数var_dump($x);echo "<br>";$y = 1.3e4;  // 指数形式var_dump($y);echo "<br>";$z = 2E-3;  // 指数形式var_dump($z);?>

输出结果:
在这里插入图片描述

4. 布尔型

true或false,不区分大小写(TRUE或FALSE也行)

<?php $x = true;var_dump($x);echo '<br>';$y = FALSE;var_dump($y);?>

输出结果:
在这里插入图片描述

5. 数组

数组可以在一个变量中存储多个相同或不同类型的值。

<?php $a = array(1,2, 2.5, 'okk', true);var_dump($a);?>

输出结果:
在这里插入图片描述

6. PHP对象

对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,必须使用class关键字声明类对象(类是可以包含属性和方法的结构。)
然后在类中定义数据类型,再在实例化的类中使用数据类型

<?php
class Car
{var $color;function __construct($color="green") {$this->color = $color;}function what_color() {return $this->color;}
}function print_vars($obj) {foreach (get_object_vars($obj) as $prop => $val) {echo "\t$prop = $val\n";}
}// 实例一个对象
$herbie = new Car("white");// 显示 herbie 属性
echo "\therbie: Properties\n";
print_vars($herbie);?>  

tips:

  1. PHP关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。
  2. forEach() 方法用于调用数组的每个元素,并将元素传递给回调函数。
    注意: forEach() 对于空数组是不会执行回调函数的。
  3. 在$prop => $val中,$prop是关联数组的键,而$val是与该键关联的值。这个语法结构用于声明一个键值对,其中键和值可以是任何数据类型。
  4. get_object_vars () 函数返回由对象属性组成的关联数组

运行结果:
在这里插入图片描述

7. NULL值

NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
可以通过设置变量值为 NULL 来清空变量数据

<?php$x = "hello";var_dump($x);echo "<br>";$x = null;var_dump($x);
?>

输出结果:
在这里插入图片描述

8. PHP资源类型

PHP 资源 resource 是一种特殊变量,保存了到外部资源的一个引用。
常见资源数据类型有打开文件、数据库连接、图形画布区域等。
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。
使用 get_resource_type() 函数可以返回资源(resource)类型:

get_resource_type(resource $handle): string

此函数返回一个字符串,用于表示传递给它的 resource 的类型。如果参数不是合法的 resource,将产生错误。

<?php$c = mysql_connect();echo get_resource_type($c)."\n";// 打印:mysql link$fp = fopen("foo","w");echo get_resource_type($fp)."\n";// 打印:file$doc = new_xmldoc("1.0");echo get_resource_type($doc->doc)."\n";// 打印:domxml document
?>

二、类型比较

松散比较与严格比较

虽然 PHP 是弱类型语言,但也需要明白变量类型及其意义,因为经常需要对 PHP 变量进行比较,包含松散和严格比较。

  • 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
  • 严格比较:用三个等号 === 比较,除了比较值,也比较类型。
<?phpecho "<pre>";if(42 == "42") {echo '1、值相等';}echo PHP_EOL; // 换行符if(42 === "42") {echo '2、类型相等';} else {echo '3、类型不相等';}
?>

输出结果:
在这里插入图片描述

tips:(PHP_EOL要起作用前要加pre)

PHP_EOL 是文本换行,并不是 html 换行。
在前边 加echo "<pre>";做文本格式化处理,
后面的PHP_EOL就起作用了.

若不加echo "<pre>";,则换行符无效
在这里插入图片描述

PHP中 比较 0、false、null

<?phpecho '<pre>';echo '0 == false: ';var_dump(0 == false);echo '0 === false: ';var_dump(0 === false);echo PHP_EOL;echo '0 == null: ';var_dump(0 == null);echo '0 === null: ';var_dump(0 === null);echo PHP_EOL;echo 'false == null: ';var_dump(false == null);echo 'false === null: ';var_dump(false === null);echo PHP_EOL;echo '"0" == false: ';var_dump("0" == false);echo '"0" === false: ';var_dump("0" === false);echo PHP_EOL;echo '"0" == null: ';var_dump("0" == null);echo '"0" === null: ';var_dump("0" === null);echo PHP_EOL;echo '"" == false: ';var_dump("" == false);echo '"" === false: ';var_dump("" === false);echo PHP_EOL;echo '"" == null: ';var_dump("" == null);echo '"" === null: ';var_dump("" === null);
?>

运行结果:
在这里插入图片描述

多种类型比较

在这里插入图片描述

三、常量

常量是一个简单值的标识符。该值在脚本中不能改变,但在全局均可使用

一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。

设置常量

设置常量,使用 define() 函数,函数语法如下:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

define的三个参数:

  • name:必选参数,常量名称,即标志符。
  • value:必选参数,常量的值。
  • case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感,默认是大小写敏感的。
    说明:自 PHP 7.3.0 开始,定义不区分大小写的常量已被弃用。从 PHP 8.0.0 开始,只有 false 是可接受的值,传递 true 将产生一个警告。

1. 区分大小写的常量:(PHP7.3 版本之后不建议使用)

<?phpheader("Content-Type:text/html;charset=utf-8");  // 解决浏览器上显示中文乱码的问题// 区分大小写的常量名define("GREETING", "欢迎访问 edu.csdn.net");echo GREETING;    // 输出 "欢迎访问 edu.csdn.net"echo '<br>';echo greeting;   // 输出 "greeting",但是有警告信息,表示该常量未定义
?>

运行结果:

在这里插入图片描述

2. 不区分大小写的常量

<?phpheader("Content-Type:text/html;charset=utf-8");  // 解决浏览器上显示中文乱码的问题// 不区分大小写的常量名define("GREETING", "欢迎访问 edu.csdn.net", true);  // 增加参数trueecho GREETING;    // 输出 "欢迎访问 edu.csdn.net"echo '<br>';echo greeting;   // 输出 "欢迎访问 edu.csdn.net"
?>

运行结果:

在这里插入图片描述

全局使用

<?phpheader("Content-Type:text/html;charset=utf-8");  // 解决浏览器上显示中文乱码的问题define("GREETING", "欢迎访问 edu.csdn.net");function myTest() {echo GREETING;}myTest();    // 输出 "欢迎访问 edu.csdn.net"
?>

运行结果:

在这里插入图片描述

四、字符串

字符串变量用于包含有字符的值。

PHP 并置运算符(.)

在 PHP 中,只有一个字符串运算符,即并置运算符 (.)
并置运算符 (.) 用于把两个字符串值连接起来。

<?php$str1 = 'Hello';$str2 = 'World!';echo $str1." ".$str2;
?>

运行结果:
在这里插入图片描述

PHP strlen() 函数

strlen() 函数用于返回字符串的长度(字节数)。
例如:

	<?phpheader("Content-Type:text/html;charset=utf-8");$str1 = 'Hello';echo strlen($str1);echo '<br>';echo strlen('hello world');
?>

运行结果:
在这里插入图片描述

PHP strpos() 函数

strpos() 函数用于在字符串内查找一个字符或一段指定的文本。

如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
举例:

echo strpos('hello world', 'w');

运行结果:
在这里插入图片描述

五、运算符

1. 算术运算符

运算符名称实例输出结果
+1+23
-3-21
*3*26
/3/21.5
%模(取余)5%21
-x设置负数-2-2
~x取反(按二进制位进行"取反"运算)~1-2
a.b并置 (连接两个字符串)“hello” . “World”helloWorld

2. 赋值运算符

运算符等同于
x = yx = y
x += yx = x + y
x -= yx = x - y
x *= yx = x * y
x /= yx = x / y
x %= yx = x % y
x .= yx = x . y

3. 递增/递减运算符

运算符名称描述
++ x预递增x 加 1,然后返回 x
x ++后递增返回 x,然后 x 加 1
– x预递减x 减 1,然后返回 x
x –后递减返回 x,然后 x 减 1

举例:

<?php$x=10; echo ++$x; // 输出11$y=10; echo $y++; // 输出10$z=5;echo --$z; // 输出4$i=5;echo $i--; // 输出5
?>

4. 比较运算符

运算符名称描述实例
x == y等于如果 x 等于 y,则返回 true 5==8返回 false
x === y绝对等于如果 x 等于 y,且它们类型相同,则返回 true5===“5” 返回 false
x != y不等于如果 x 不等于 y,则返回 true5!=8 返回 true
x <> y不等于如果 x 不等于 y,则返回 true5<>8 返回 true
x !== y不绝对等于如果 x 不等于 y,或它们类型不相同,则返回 true5!==“5” 返回true
x > y大于如果 x 大于 y,则返回 true5>8 返回 false
x < y小于如果 x 小于 y,则返回 true5<8 返回 true
x >= y大于等于如果 x 大于或者等于 y,则返回 true5>=8 返回 false
x <= y小于等于如果 x 小于或者等于 y,则返回 true5<=8 返回 true

5. 逻辑运算符

运算符名称描述实例
x and y如果 x 和 y 都为 true,则返回 truex=6;y=3;(x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6;y=3;(x==6 or y==5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6;y=3;(x==6 xor y==3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6;y=3;(x < 10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true,则返回 truex=6;y=3;(x==5 || y==5) 返回 false
! x如果 x 不为 true,则返回 truex=6;y=3;!(x==y) 返回 true

6. 数组运算符

运算符名称描述
x + y集合x 和 y 的集合
x == y相等如果 x 和 y 具有相同的键/值对,则返回 true
x === y恒等如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y不相等如果 x 不等于 y,则返回 true
x <> y不相等如果 x 不等于 y,则返回 true
x !== y不恒等如果 x 不等于 y,则返回 true

举例:

<?php$x = array("a" => "red", "b" => "green"); $y = array("c" => "blue", "d" => "yellow"); $z = $x + $y; // $x 和 $y 数组合并var_dump($z);var_dump($x == $y);var_dump($x === $y);var_dump($x != $y);var_dump($x <> $y);var_dump($x !== $y);
?>

输出结果:
在这里插入图片描述

7. 三元运算符

语法格式:

(expr1) ? (expr2) : (expr3) 

对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。

自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。

举例:

<?php// 普通写法$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';echo $username, PHP_EOL;// PHP 5.3+ 版本写法$username = $_GET['user'] ?: 'nobody';echo $username, PHP_EOL;
?>

注意:
在 PHP7+ 版本多了一个 NULL 合并运算符 ??

<?php// 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值$username = $_GET['user'] ?? 'nobody';// 类似的三元运算符$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>

8. 组合比较符(PHP7+版本)

PHP7+ 支持组合比较符(combined comparison operator)也称之为太空船操作符,符号为 <=>。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。

语法格式:

$c = $a <=> $b;

说明:

  • 如果 $a > $b, 则 $c 的值为 1
  • 如果 $a == $b, 则 $c 的值为 0
  • 如果 $a < $b, 则 $c 的值为 -1

举例:

<?php// 整型echo 1 <=> 1; // 0echo 1 <=> 2; // -1echo 2 <=> 1; // 1// 浮点型echo 1.5 <=> 1.5; // 0echo 1.5 <=> 2.5; // -1echo 2.5 <=> 1.5; // 1// 字符串echo "a" <=> "a"; // 0echo "a" <=> "b"; // -1echo "b" <=> "a"; // 1
?>

9. 运算符优先级

在这里插入图片描述

http://www.lryc.cn/news/2415527.html

相关文章:

  • CSS常用例子
  • 一套webshell提权教程
  • 密码编码学与网络安全———原理与实践(第六版) (第2章) 笔记
  • linux 多进程函数,多进程之信号量 Linux函数 semget();semctl();semop(); [转]
  • 爬虫入门到进阶(七)
  • (转)“Word上次启动时失败,以安全模式启动Word....”解决办法
  • MyEclipse 注册码分享
  • 基于matlab实现人脸识别检测系统
  • Visual Studio 2008 专业版
  • proto语法说明
  • 最新短视频去水印解析API接口分享
  • 三星 原生android,原生Android 4.0 三星GALAXY Nexus评测
  • java技术讨论QQ群号码:40820473
  • 无人机倾斜摄影测量技术,倾斜摄影三维建模测量技术及其应用详解
  • 数字图像基本知识
  • 全网最新最详细【2024版本】Kali Linux 渗透测试技术大全
  • python爬取网页数据步骤,python爬取网页详细教程
  • 冰峰王座完整的语音英文+中文解释!(修订版)
  • Microsoft live labs Pivot 和Google wave邀请
  • RTTSTM32开发实践1:开发环境搭建
  • Win11 预览体验计划空白无显示的一种解决方案
  • 【网页设计与制作成品】 web前端开发技术 web课程设计 网页规划与设计
  • 启动应用程序出现d3dx9_27.dll缺少问题解决
  • 最新华为鸿蒙系统升级名单,鸿蒙系统首批升级机型名单_华为鸿蒙系统升级机型名单时间表...
  • 口令
  • 好用的影子系统软件,系统辅助工具
  • ES优化实战 - 小操作节省百分之三十以上的磁盘空间
  • 计算机网络模型及协议简介
  • 用计算机唱歌弹奏china,新目标英语专题练习:句型转换(附答案)
  • identity_insert 如何改为on_如何找到模型中你想要找的所有元素