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 变量进行比较,包含松散和严格比较。

  • 松散比较:使用两个等号 == 比较,只比较值,不比较类型。
  • 严格比较:用三个等号 === 比较,除了比较值,也比较类型。
<?php
	echo "<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

<?php
	echo '<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 版本之后不建议使用)

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

运行结果:

在这里插入图片描述

2. 不区分大小写的常量

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

运行结果:

在这里插入图片描述

全局使用

<?php
	header("Content-Type:text/html;charset=utf-8");  // 解决浏览器上显示中文乱码的问题

	define("GREETING", "欢迎访问 edu.youkuaiyun.com");
	 
	function myTest() {
		echo GREETING;
	}
	 
	myTest();    // 输出 "欢迎访问 edu.youkuaiyun.com"
?>

运行结果:

在这里插入图片描述

四、字符串

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

PHP 并置运算符(.)

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

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

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

PHP strlen() 函数

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

	<?php
	header("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; // 0
	echo 1 <=> 2; // -1
	echo 2 <=> 1; // 1
	 
	// 浮点型
	echo 1.5 <=> 1.5; // 0
	echo 1.5 <=> 2.5; // -1
	echo 2.5 <=> 1.5; // 1
	 
	// 字符串
	echo "a" <=> "a"; // 0
	echo "a" <=> "b"; // -1
	echo "b" <=> "a"; // 1
?>

9. 运算符优先级

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

剑心诀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值