类型比较 —— 常量 —— 字符串变量 —— 运算符
PHP echo 和 print 语句
echo 和 print 区别:(没啥区别,输出的区别,多用echo)
echo - 可以输出一个或多个字符串
print - 只允许输出一个字符串,返回值总为 1
提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
PHP EOF(heredoc)
PHP EOF(heredoc)是一种在命令行shell和程序语言里定义一个字符串的方法。
使用概述:
1. 必须后接分号,否则编译通不过。
2. EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
3. 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
4. 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符号。
5. 当内容需要内嵌引号(单引号或双引号)时,不需要加转义符,本身对单双引号转义,此处相当与q和qq的用法。
例:
<?php
$name="runoob";
$a= <<<EOF
"abc"$name
"123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>
PHP 数据类型
PHP 支持以下几种数据类型:
String(字符串)
Integer(整型)
Float(浮点型)
Boolean(布尔型)
Array(数组)
Object(对象)
NULL(空值)
Resource(资源类型)
PHP 字符串
一个字符串是一串字符的序列,就像 "Hello world!"。
<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>
PHP 整型
整数是一个没有小数的数字。
整数规则:
1.整数必须至少有一个数字 (0-9)
2.整数不能包含逗号或空格
3.整数是没有小数点的
4.整数可以是正数或负数
5.整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
<?php
$x = 5985;
var_dump($x); //var_dump() 函数返回变量的数据类型和值
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>
//int(5985)
//int(-345)
//int(140)
//int(39)
PHP 浮点型
浮点数是带小数部分的数字,或是指数形式。
<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
//float(10.365)
//float(2400)
//float(8.0E-5)
PHP 布尔型(条件判断)
布尔型可以是 TRUE 或 FALSE。
$x=true;
$y=false;
PHP 数组
数组可以在一个变量中存储多个值。
<?php
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>
PHP 对象
对象数据类型也可以用于存储数据。
在 PHP 中,对象必须声明。
首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:
<!DOCTYPE html>
<html>
<body>
<?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);
?>
</body>
</html>
PHP NULL值
NULL值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
可以通过设置变量值为 NULL 来清空变量数据:
<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>
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 变量进行比较,包含松散和严格比较。
松散比较:使用两个等号 == 比较,只比较值,不比较类型。
严格比较:用三个等号 === 比较,除了比较值,也比较类型。
PHP常量
常量值被定义后,在脚本的其他任何地方都不能被改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
常量是全局的,常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。
<?php
define("GREETING", "欢迎访问 mxzfun.xyz");
function myTest() {
echo GREETING;
}
myTest(); // 输出 "欢迎访问 mxzfun.xyz"
?>
PHP 字符串变量
字符串变量用于存储并处理文本,用于包含有字符的值。可以直接在函数中使用字符串,或者把它存储在变量中。
<?php
$txt="Hello world!";
echo $txt;
?>
常用的操作字符串的函数和运算符
PHP 并置运算符
在 PHP 中,只有一个字符串运算符,并置运算符 (.) 用于把两个字符串值连接起来。
演示如何将两个字符串变量连接在一起:
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2; //输出:Hello world! What a nice day!
?>
PHP strlen() 函数
strlen() 函数返回字符串的长度(字节数)。
<?php
echo strlen("Hello world!"); //12
?>
PHP strpos() 函数
strpos() 函数用于在字符串内查找一个字符或一段指定的文本。
如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。
<?php
echo strpos("Hello world!","world");
?> //字符串 "world" 的位置是 6。之所以是 6 而不是 7 的原因是,字符串中第一个字符的位置是 0,而不是 1。
PHP 运算符
PHP 算术运算符
加减乘除都一样,这里仅举比较少见的:
- x % y 模(除法的余数) x 除以 y 的余数
- - x 取反 x 取反
- a . b 并置 连接两个字符串
intdiv(),该函数返回值为第一个参数除于第二个参数的值并取整(向下取整)
<?php var_dump(intdiv(10, 3)); ?> //int(3)
三元运算符
另一个条件运算符是"?:"(或三元)运算符 。
语法格式:(expr1) ? (expr2) : (expr3)
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
以下实例中通过判断 $_GET 请求中含有 user 值,如果有返回 $_GET['user'],否则返回 nobody:
<?php
$test = 'greeee123';
// 普通写法
$username = isset($test) ? $test : 'nobody';
echo $username, PHP_EOL;
// PHP 5.3+ 版本写法
$username = $test ?: 'nobody';
echo $username, PHP_EOL;
?>
组合比较符(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
?>
Comments | NOTHING