递增/递减运算符
++
增量运算符
--
递减算子
Example Name Effect
---------------------------------------------------------------------
++$a Pre-increment Increments $a by one, then returns $a.
$a++ Post-increment Returns $a, then increments $a by one.
--$a Pre-decrement Decrements $a by one, then returns $a.
$a-- Post-decrement Returns $a, then decrements $a by one.
这些可以在变量之前或之后进行。
如果放在变量之前,则对变量进行递增/递减操作 第一 然后返回结果。如果放在变量之后,则变量为 第一 返回,然后完成递增/递减操作。
例如:
$apples = 10;
for ($i = 0; $i < 10; ++$i) {
echo 'I have ' . $apples-- . " apples. I just ate one.\n";
}
实例
在上面的情况 ++$i
使用,因为它更快。 $i++
会有相同的结果。
预增量稍微快一点,因为它确实增加了变量,然后'返回'结果。后增量创建一个特殊变量,在那里复制第一个变量的值,并且只有在使用第一个变量之后,才用第二个变量替换它的值。
但是,你必须使用 $apples--
,因为首先你要显示当前的苹果数量,和 然后 你想从中减去一个。
您还可以在PHP中增加字母:
$i = "a";
while ($i < "c") {
echo $i++;
}
一旦 z
到达了 aa
接下来,等等。
请注意,字符变量可以递增但不递减,即使只支持纯ASCII字符(a-z和A-Z)。
Stack Overflow帖子:
按位运算符
有点什么?位是1或0的表示。基本上为OFF(0)和ON(1)
什么是字节?一个字节由8位组成,一个字节的最高值为255,这意味着每个位都被置位。我们将看看为什么字节的最大值是255。
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------
这个1字节的表示
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 = 255(1字节)
一些例子可以更好地理解
“AND”运算符: &
$a = 9;
$b = 10;
echo $a & $b;
这会输出数字8.为什么?好吧,让我们看一下使用我们的表格示例。
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------
| $a | 0| 0| 0| 0| 1| 0| 0| 1|
-------------------------------------------
| $b | 0| 0| 0| 0| 1| 0| 1| 0|
-------------------------------------------
| & | 0| 0| 0| 0| 1| 0| 0| 0|
-------------------------------------------
所以你可以从表中看到他们共享的唯一位是8位。
第二个例子
$a = 36;
$b = 103;
echo $a & $b; // This would output the number 36.
$a = 00100100
$b = 01100111
两个共享位是32和4,当它们加在一起时返回36。
“或”运算符: |
$a = 9;
$b = 10;
echo $a | $b;
这将输出数字11.为什么?
-------------------------------------------
| 1 Byte ( 8 bits ) |
-------------------------------------------
|Place Value | 128| 64| 32| 16| 8| 4| 2| 1|
-------------------------------------------
| $a | 0| 0| 0| 0| 1| 0| 0| 1|
-------------------------------------------
| $b | 0| 0| 0| 0| 1| 0| 1| 0|
-------------------------------------------
| | | 0| 0| 0| 0| 1| 0| 1| 1|
-------------------------------------------
您会注意到我们在8列,2列和1列中设置了3位。添加它们:8 + 2 + 1 = 11。
_
gettext()的别名
下划线字符'_'如 _()
是别的 gettext()
功能。
Syntax Name Description
x == y Equality True if x and y have the same key/value pairs
x != y Inequality True if x is not equal to y
x === y Identity True if x and y have the same key/value pairs
in the same order and of the same types
x !== y Non-identity True if x is not identical to y
++ x Pre-increment Increments x by one, then returns x
x ++ Post-increment Returns x, then increments x by one
-- x Pre-decrement Decrements x by one, then returns x
x -- Post-decrement Returns x, then decrements x by one
x and y And True if both x and y are true x=6 y=3
(x < 10 and y > 1) returns true
x && y And True if both x and y are true x=6 y=3
(x < 10 && y > 1) returns true
a . b Concatenation Concatenate two strings: "Hi" . "Ha"
魔术常数:虽然这些不仅仅是符号,而是这个象征家族的重要组成部分。有八个魔法常数会根据它们的使用位置而改变。
__LINE__
:文件的当前行号。
__FILE__
:文件的完整路径和文件名。如果在include中使用,则返回包含文件的名称。从PHP 4.0.2开始, __FILE__
始终包含已解析符号链接的绝对路径,而在旧版本中,它包含在某些情况下的相对路径。
__DIR__
:文件的目录。如果在include中使用,则返回包含文件的目录。这相当于 dirname(__FILE__)
。除非它是根目录,否则此目录名称没有尾部斜杠。 (在PHP 5.3.0中添加。)
__FUNCTION__
:函数名称。 (在PHP 4.3.0中添加)从PHP 5开始,此常量返回声明的函数名称(区分大小写)。在PHP 4中,它的值总是小写的。
__CLASS__
:班级名称。 (在PHP 4.3.0中添加)从PHP 5开始,此常量返回声明的类名(区分大小写)。在PHP 4中,它的值总是小写的。类名包括声明它的名称空间(例如 Foo\Bar
)。请注意,从PHP 5.4开始 __CLASS__
也适用于特质。当用于特征方法时, __CLASS__
是使用特征的类的名称。
__TRAIT__
:特征名称。 (在PHP 5.4.0中添加)从PHP 5.4开始,此常量返回声明的特征(区分大小写)。特征名称包括声明它的名称空间(例如 Foo\Bar
)。
__METHOD__
:类方法名称。 (在PHP 5.0.0中添加)方法名称在声明时返回(区分大小写)。
__NAMESPACE__
:当前名称空间的名称(区分大小写)。此常量在编译时定义(在PHP 5.3.0中添加)。
资源
<=>
宇宙飞船运营商
在PHP 7中添加
该 宇宙飞船运营商 <=>
是PHP 7中添加的最新比较运算符。它是一个 非关联 具有与相等运算符相同优先级的二元运算符(==
, !=
, ===
, !==
)。该运算符允许在左手操作数和右手操作数之间进行更简单的三向比较。
运算符导致整数表达式为:
0
当两个操作数相等时
- 少于
0
当左侧操作数小于右侧操作数时
- 比...更棒
0
当左侧操作数大于右侧操作数时
例如
1 <=> 1; // 0
1 <=> 2; // -1
2 <=> 1; // 1
使用此运算符的一个很好的实际应用是比较类型回调,预期基于两个值之间的三向比较返回零,负或正整数。比较函数传递给 usort
就是这样一个例子。
在PHP 7之前你会写...
$arr = [4,2,1,3];
usort($arr, function ($a, $b) {
if ($a < $b) {
return -1;
} elseif ($a > $b) {
return 1;
} else {
return 0;
}
});
从PHP 7开始,你可以写...
$arr = [4,2,1,3];
usort($arr, function ($a, $b) {
return $a <=> $b;
});
类型操作符
instanceof
用于确定PHP变量是否是某个类的实例化对象。
<?php
class mclass { }
class sclass { }
$a = new mclass;
var_dump($a instanceof mclass);
var_dump($a instanceof sclass);
以上示例将输出:
bool(true)
bool(false)
原因: 上面的例子 $a
是一个对象 mclass
所以只使用一个 mclass
数据不是与...的实例 sclass
继承示例
<?php
class pclass { }
class childclass extends pclass { }
$a = new childclass;
var_dump($a instanceof childclass);
var_dump($a instanceof pclass);
以上示例将输出:
bool(true)
bool(true)
克隆示例
<?php
class cloneable { }
$a = new cloneable;
$b = clone $a;
var_dump($a instanceof cloneable);
var_dump($b instanceof cloneable);
以上示例将输出:
bool(true)
bool(true)