参考 – 这个符号在PHP中意味着什么?

这是什么?

这是一个不断出现的关于PHP中语法问题的集合。 这也是一个社区维基,所以每个人都被邀请参与维护这个列表。

为什么是这样?

过去很难find有关操作符和其他语法标记的问题
主要想法是链接到堆栈溢出的现有问题,所以我们更容易引用它们,而不是复制PHP手册中的内容。

¹注意:自2013年1月以来,Stack Overflow 确实支持特殊字符 。 只需用引号括住search条件,例如[php] "==" vs "==="

我应该在这里做什么?

如果您已经被某人指出,因为您已经提出了这样的问题,请find下面的特定语法。 链接到PHP手册的页面以及链接的问题可能会回答你的问题。 如果是这样,鼓励你提出答案。 这份名单并不意味着帮助别人提供的替代品。

列表

如果您的特定标记未在下面列出,您可能会在“ parsing器标记列表”中find它。


& 位运算符或引用

  • 用&符号来启动一个PHP函数是什么意思?
  • 了解PHP&(&符号,按位和)运算符
  • PHP“&”运算符
  • PHP中&和&&的区别
  • PHP中的“&”是什么意思?
  • 在这种情况下,“&”是什么意思?
  • PHP中“&”符号的含义是什么?
  • 这个签名在PHP中是什么意思(&)?
  • “&”运算符如何在PHP函数中工作?
  • PHP中的&in&2是什么意思?
  • 什么时候应该使用按位运算符?
  • 有没有必要在对象前面使用&符号?

=& 参考

  • PHP中的引用赋值运算符,=&
  • PHP中的“=&”和“&=”运算符是什么意思?
  • “&=”和“=&”运算符是做什么的?
  • PHP中的=是什么意思?

&= 按位运算符

  • PHP中的“=&”和“&=”运算符是什么意思?
  • “&=”和“=&”运算符是做什么的?

&& 逻辑运算符

  • “AND”和“&&”作为操作符
  • PHP中&和&&的区别
  • 在PHP中,“和”和“&&”运算符有什么不同?
  • PHP和/或关键字

% 算术运算符

  • 百分号在PHP中意味着什么?
  • 什么是PHP运算符%,以及如何在实际示例中使用它?

!! 逻辑运算符

  • 在PHP中双重(!!)运算符

@ 错误控制操作符

  • PHP中@符号的用法是什么?
  • PHP中variables名前的'At'符号:@ $ _ POST
  • PHP函数和@functions
  • 我应该在我的PHP代码中使用@吗?

?: 三元运算符

  • 什么是?在PHP 5.3中?
  • 什么是PHP运营商? 和“:”叫,他们做什么?
  • PHP中的?:运算符('Elvis运算符')
  • 我在哪里可以阅读有关“?”完成的条件 和“:”(冒号)?
  • 使用PHP 5.3?:运算符

?? 空合并运算符 (自PHP 7起)

  • C#中的空合并运算符(?)在PHP中?

: 控制结构的替代语法 , 三元运算符

  • 什么是PHP中的“:”?
  • “:”在PHP中是什么意思?

:: 范围分辨率运算符

  • 两个冒号在PHP中意味着什么?
  • PHP令牌名称T_PAAMAYIM_NEKUDOTAYIM的含义是什么?
  • PHP中的(双冒号)和 – >(箭头)有什么区别?
  • PHP中迟到的静态绑定究竟是什么?
  • 静:: staticFunctionName()
  • 意外的T_PAAMAYIM_NEKUDOTAYIM,期待T_NS_Separator

\ 命名空间

  • PHP中的反斜杠 – 这是什么意思?
  • PHP(5.3+)在\(反斜杠)中做什么?

-> 类和对象

  • 什么是“ – >”PHP运算符叫,当你大声朗读代码的时候怎么说呢?
  • 我们在哪里使用PHP中的对象运算符“ – >”?
  • PHP中的(双冒号)和 – >(箭头)有什么区别?
  • PHP语法$ var1 – > $ var2是什么意思?
  • “ – >”在PHP中是指/指的是什么?

=> 数组

  • PHP中“=>”是什么意思?
  • 在PHP中使用=>
  • foreach中的$ k => $ v是什么($ ex为$ k => $ v)是什么意思?

^ 位运算符

  • 按位运算符XOR('^')如何工作?
  • ^在PHP中意味着什么?

>> 位运算符

  • 在PHP中,>>是什么意思?

<< 按位运算符”

  • 在PHP中奇怪的打印行为?

<<< Heredoc或Nowdoc

  • <<< END在PHP中是什么意思?
  • PHPexpression式<<< EOB
  • 在PHP中,“<<<”代表什么?
  • 在PHP中使用<<< CON
  • PHP中的这种语法是什么?

= 赋值运算符

  • 三个不同的等于

== 比较运算符

  • PHP等式(== double等于)和identity(=== triple等于)比较运算符有什么不同?
  • PHP!=和==运算符
  • 三个不同的等于
  • 在PHP中进行types杂耍和(严格)大于/小于比较

===

  • “===”是什么意思?
  • PHP等式(== double等于)和identity(=== triple等于)比较运算符有什么不同?
  • 三个不同的等于
  • 在PHP中进行types杂耍和(严格)大于/小于比较

!== 比较运算符

  • PHP中的比较运算符是什么意思?
  • 在PHP中,==和!=有区别吗?

!= 比较运算符

  • PHP!=和==运算符
  • 在PHP中,==和!=有区别吗?
  • 比较,!==与!=
  • <>和!=有什么区别?

比较运算符

  • PHP运算符<>
  • PHP的<>运算符
  • <>和!=有什么区别?
  • 在PHP中进行types杂耍和(严格)大于/小于比较

<=> (自PHP 7.0起)

  • 太空船(三方比较)操作员

| 按位运算符

  • |的区别是什么? 和|| 运营商?
  • 什么使用单pipe'|' 在函数参数中呢?

|| 逻辑运算符

  • |之间有什么区别? 和|| 运营商?
  • PHP和/或关键字
  • 究竟是什么? 意思?
  • PHP中的or运算符的行为

~ 位运算符

  • 这个〜操作符在这里是什么意思?

+ 算术运算符 , 数组运算符

  • 在PHP中的数组运算符?

+=-= 赋值运算符

  • 什么是+ =用于?
  • 我的PHP文档中的$ page – = 1是什么意思?

++-- 递增/递减运算符

  • 了解增量
  • 下面回答

.= 赋值运算符

  • 在PHP中。=和+ =有什么区别?
  • 了解一行PHP

. string运算符

  • 连接echo和return时的句号和逗号之间的区别?
  • 什么是。 (点)在PHP中做?

, 函数参数

  • 连接echo和return时的句号和逗号之间的区别?

, variables声明

  • 逗号在variables声明中的含义是什么?

$$ variablesvariables

  • PHP(美元或美元)是什么意思?
  • 什么是PHP中的“$$”
  • $ function()和$$variables

执行操作符

  • 反拨叫什么?

<?= 短打开标签

  • 这个符号在PHP中是什么意思?
  • PHP中“<?=”是什么意思?
  • <?=是什么意思?

[] 数组 (PHP 5.4以来的简短语法)

  • PHP数组…什么是空括号的含义?
  • PHP:[]是什么意思
  • PHP array_push()vs myArray []
  • 从PHP数组读取时,[]意味着什么?
  • 数组简写forms:literal $var = []空数组

<? 打开和closures标签

  • PHP短标签可以接受使用吗?

... 参数解包 (自PHP 5.6起)


** 幂 (自PHP 5.6起)


# 单行shell风格的评论

  • 我可以在PHP中使用哈希注释吗?

增量/减量运算符

++增量运算符

--递减运算符

 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. 

这些可以在variables之前或之后进行。

如果放在variables之前,首先对variables进行递增/递减操作,然后返回结果。 如果放在variables之后,则首先返回variables,然后执行递增/递减操作。

例如:

 $apples = 10; for ($i = 0; $i < 10; ++$i) { echo 'I have ' . $apples-- . " apples. I just ate one.\n"; } 

现场示例

在上面的情况下使用++$i ,因为它更快。 $i++会有相同的结果。

预增加速度要快一点,因为它确实增加了variables,之后“返回”结果。 增量后创build一个特殊variables,在那里复制第一个variables的值,并且只有在使用第一个variables之后,用第二个variablesreplace它的值。

但是,您必须使用$apples-- ,因为首先要显示当前的苹果数量, 然后您想从中减去一个。

你也可以在PHP中增加字母:

 $i = "a"; while ($i < "c") { echo $i++; } 

一旦z到达, aa就是下一个,依此类推。

请注意,字符variables可以递增但不递减,即使只有纯ASCII字符(az和AZ)被支持。


堆栈溢出post:

  • 了解增量

位运算符

什么是一点? 一位表示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__ :文件的完整path和文件名。 如果在include中使用,则返回包含文件的名称。 从PHP 4.0.2开始, __FILE__总是包含一个parsing了符号链接的绝对path,而在旧版本中,它包含了在某些情况下的相对path。

__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中添加的最新的比较操作符。它是一个与关联运算符( ==!====!== )具有相同优先级的非关联二元运算符。 该运算符允许在左侧和右侧操作数之间进行更简单的三向比较。

运算符产生一个整数expression式:

  • 当两个操作数相等时为0
  • 左侧操作数小于右侧操作数时小于0
  • 当左操作数大于右操作数时大于0

例如

 1 <=> 1; // 0 1 <=> 2; // -1 2 <=> 1; // 1 

使用此运算符的一个很好的实际应用是比较types的callback,根据两个值之间的三向比较,预期返回零,负数或正整数。 传递给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; }); 

types操作符

instanceof用于确定一个PHPvariables是否是某个类的实例化对象。

 <?php class mclass { } class sclass { } $a = new mclass; var_dump($a instanceof mclass); var_dump($a instanceof sclass); 

上面的例子会输出:

 bool(true) bool(false) 

原因:上面例子$amclass一个对象,所以只能使用一个mclass数据而不是sclass实例

示例与inheritance

 <?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) 

PHP运算符的概述:


逻辑运算符:

  • $ a && $ b:如果$ a和$ b都为TRUE,则为TRUE。
  • $ a || $ b:如果$ a或$ b是TRUE,则为TRUE。
  • $ a xor $ b:如果$ a或$ b是TRUE,则为TRUE,但不是两者。
  • $ a:如果$ a不是TRUE则为TRUE。
  • $ a和$ b:如果$ a和$ b都为TRUE,则为TRUE。
  • $ a或$ b:如果$ a或$ b是TRUE,则为TRUE。

比较运营商:

  • $ a == $ b:如果在玩杂耍之后$ a等于$ b,则为TRUE。
  • $ a === $ b:如果$ a等于$ b,则为TRUE,并且它们是相同的types。
  • $ a!= $ b:如果$ a在玩杂耍后不等于$ b,则为TRUE。
  • $ a <> $ b:如果在types转换后$ a不等于$ b,则为TRUE。
  • $ a!== $ b:如果$ a不等于$ b,或者它们不是相同types,则为TRUE。
  • $ a <$ b:如果$ a严格小于$ b,则为TRUE。
  • $ a> $ b:如果$ a严格大于$ b,则为TRUE。
  • $ a <= $ b:如果$ a小于或等于$ b,则为TRUE。
  • $ a> = $ b:如果$ a大于或等于$ b,则为TRUE。
  • $ a <=> $ b:当$ a分别小于,等于或大于$ b时,小于,等于或大于零的整数。 自PHP 7起可用。

算术运算符:

  • – $ a :与$ a相对。
  • $ a + $ b :$ a和$ b的总和。
  • $ a – $ b :$ a和$ b的区别。
  • $ a * $ b :$ a和$ b的产品。
  • $ a / $ b :$ a和$ b的商。
  • $ a%$ b$ a的余数除以$ b。
  • $ a ** $ b :将$ a提升为$ b'th的结果(在PHP 5.6中引入)

增量/减量运算符:

  • ++ $ a :将$ a加1,然后返回$ a。
  • $ a ++ :返回$ a,然后将$ a加1。
  • – $ a :将$ a减1,然后返回$ a。
  • $ a– :返回$ a,然后将$ a减1。

按位运算符:

  • $ a&$ b :设置$ a和$ b中的位。
  • $ a | $ b :设置$ a或$ b中设置的位。
  • $ a ^ $ b :在$ a或$ b中设置的位,但不是两者都被设置。
  • 〜$ a :在$ a中设置的位没有设置,反之亦然。
  • $ a << $ b :将$ a $ b的位移到左边(每一步意味着“乘以2”)
  • $ a >> $ b :将$ a $ b步骤的位移到右边(每一步意味着“除以二”)

string操作符:

  • $ a。 $ b :连接$ a和$ b。

数组运算符:

  • $ a + $ b :$ a和$ b的联合。
  • $ a == $ b :如果$ a和$ b具有相同的键/值对,则为TRUE。
  • $ a === $ b :如果$ a和$ b具有相同的键和值对,并且具有相同的顺序和相同types,则为TRUE。
  • $ a!= $ b :如果$ a不等于$ b,则为TRUE。
  • $ a <> $ b :如果$ a不等于$ b,则为TRUE。
  • $ a!== $ b :如果$ a与$ b不相同,则为TRUE。

作业人员:

  • $ a = $ b$ b的值被分配给$ a
  • $ a + = $ b :与$ a = $ a + $ b相同
  • $ a – = $ b :与$ a = $ a – $ b相同
  • $ a * = $ b :与$ a = $ a * $ b相同
  • $ a / = $ b :与$ a = $ a / $ b相同
  • $ a%= $ b :与$ a = $ a%$ b相同
  • $ a ** = $ b :与$ a = $ a ** $ b相同
  • $ a。= $ b :与$ a = $ a相同。 $ b
  • $ a&= $ b :与$ a = $ a&$ b相同
  • $ a | = $ b :与$ a = $ a |相同 $ b
  • $ a ^ = $ b :与$ a = $ a ^ $ b相同
  • $ a << = $ b :与$ a = $ a << $ b相同
  • $ a >> = $ b :与$ a = $ a >> $ b相同

注意

and运算符和/ or运算符的优先级比赋值运算符=

这意味着$a = true and false; 相当于($a = true) and false

在大多数情况下,您可能会想要使用&&|| ,其行为以C,Java或JavaScript等语言的方式performance。

Spaceship Operator <=> (在PHP 7中添加)

<=> Spaceship操作符(PHP 7,来源:PHP手册)的示例:

整数,浮点数,string,数组和对象,用于variables的三向比较。

 // Integers echo 10 <=> 10; // 0 echo 10 <=> 20; // -1 echo 20 <=> 10; // 1 // Floats echo 1.5 <=> 1.5; // 0 echo 1.5 <=> 2.5; // -1 echo 2.5 <=> 1.5; // 1 // Strings echo "a" <=> "a"; // 0 echo "a" <=> "b"; // -1 echo "b" <=> "a"; // 1 echo "a" <=> "aa"; // -1 echo "zz" <=> "aa"; // 1 // Arrays echo [] <=> []; // 0 echo [1, 2, 3] <=> [1, 2, 3]; // 0 echo [1, 2, 3] <=> []; // 1 echo [1, 2, 3] <=> [1, 2, 1]; // 1 echo [1, 2, 3] <=> [1, 2, 4]; // -1 // Objects $a = (object) ["a" => "b"]; $b = (object) ["a" => "b"]; echo $a <=> $b; // 0 $a = (object) ["a" => "b"]; $b = (object) ["a" => "c"]; echo $a <=> $b; // -1 $a = (object) ["a" => "c"]; $b = (object) ["a" => "b"]; echo $a <=> $b; // 1 // only values are compared $a = (object) ["a" => "b"]; $b = (object) ["b" => "b"]; echo $a <=> $b; // 1 

{}大括号

  • 块 – 大括号/没有大括号?
  • 在PHP中的string中的大括号
  • 用数组符号表示PHP大括号

还有一些关于上一篇文章的话

 $x[4] = 'd'; // it works $x{4} = 'd'; // it works $echo $x[4]; // it works $echo $x{4}; // it works $x[] = 'e'; // it works $x{} = 'e'; // does not work $x = [1, 2]; // it works $x = {1, 2}; // does not work echo "${x[4]}"; // it works echo "${x{4}}"; // does not work echo "{$x[4]}"; // it works echo "{$x{4}}"; // it works 

PHPstring: PHPstring可以用四种方式指定,不只是两种方式:

1)单引号string:

 $string = 'This is my string'; // print This is my string 

2)双引号string:

 $str = 'string'; $string = "This is my $str"; // print This is my string 

3)Heredoc:

 $string = <<<EOD This is my string EOD; // print This is my string 

4)Nowdoc(自PHP 5.3.0起):

 $string = <<<'END_OF_STRING' This is my string END_OF_STRING; // print This is my string 

空合并运算符(??)

这个操作符已经被添加到了PHP 7.0中,这是因为需要将三元运算符与isset()一起使用。 它返回它的第一个操作数,如果它存在并且不是NULL; 否则返回第二个操作数。

 <?php // Fetches the value of $_GET['user'] and returns 'nobody' // if it does not exist. $username = $_GET['user'] ?? 'nobody'; // This is equivalent to: $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; // Coalescing can be chained: this will return the first // defined value out of $_GET['user'], $_POST['user'], and // 'nobody'. $username = $_GET['user'] ?? $_POST['user'] ?? 'nobody'; ?> 

题:

什么=>是什么意思?


回答:

=>我们人类决定用联合arrays中的"Key" => "Value"对来分隔符号。

阐述:

为了理解这个,我们必须知道关联数组是什么。 传统程序员认为数组( PHP )时出现的第一件事是类似于:

 $myArray1 = array(2016, "hello", 33);//option 1 $myArray2 = [2016, "hello", 33];//option 2 $myArray3 = [];//option 3 $myArray3[] = 2016; $myArray3[] = "hello"; $myArray3[] = 33; 

如果我们想在代码的后面部分调用这个数组,我们可以这样做:

 echo $myArray1[1];// output: hello echo $myArray2[1];// output: hello echo $myArray3[1];// output: hello 

到现在为止还挺好。 然而,作为人类,我们可能会发现很难记住数组的索引[0]是2016年的值,数组的索引[1]是一个问候 ,数组的索引[2]是一个简单的整数值 。 那么我们可以select使用所谓的关联数组 。 关联数组与序列数组有一些差别( 这是以前的情况,因为它们按照预定顺序递增索引,对于每个随后的值递增1 )。

差异( 顺序和关联数组之间 ):

  • 在关联数组的声明中,你不仅要包含你想要放在数组中的值,而且还要在后面的部分中调用数组时使用索引值(称为key )的代码。 在声明过程中使用以下语法: "key" => "value"

  • 当使用关联数组时, key将被放置在数组的索引内以检索所需的value

例如:

  $myArray1 = array( "Year" => 2016, "Greetings" => "hello", "Integer_value" => 33);//option 1 $myArray2 = [ "Year" => 2016, "Greetings" => "hello", "Integer_value" => 33];//option 2 $myArray3 = [];//option 3 $myArray3["Year"] = 2016; $myArray3["Greetings"] = "hello"; $myArray3["Integer_value"] = 33; 

现在,为了接收和之前一样的输出, key将被用在数组索引中:

 echo $myArray1["Greetings"];// output: hello echo $myArray2["Greetings"];// output: hello echo $myArray3["Greetings"];// output: hello 

最终点:

所以从上面的例子中可以很容易地看到=>符号用于表示数组中每个keyvalue对之间的关​​联数组之间的关系。

空合并运算符PHP

空合并运算符(??)已经被添加到PHP7中,以便与isset()一起使用三元组。 它返回它的第一个操作数,如果它存在并且不为NULL,则返回第二个操作数,如下面的例子:

 $username = $_GET['user'] ?? 'nobody'; // This is equivalent to: $username = isset($_GET['user']) ? $_GET['user'] : 'nobody'; 

问题

PHP中的“&”是什么意思?

PHP“&”运算符

一旦我们习惯了,让生活变得更加轻松。(仔细查看下面的例子)

通常检查在$ a和$ b中设置的位。

你有没有注意到这些电话是如何工作的?

  error_reporting(E_ERROR | E_WARNING | E_PARSE); error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); error_reporting(E_ALL & ~E_NOTICE); error_reporting(E_ALL); 

所以以上是比特运算符和比特的游戏。

一个有用的例子就是下面给出的简单configuration,所以一个整数字段可以为你存储数千个连击。

大多数人已经阅读了文档,但没有把这些按位运算符的实际使用情况放在一边。

例如,你会爱上

 <?php class Config { // our constants must be 1,2,4,8,16,32,64 ....so on const TYPE_CAT=1; const TYPE_DOG=2; const TYPE_LION=4; const TYPE_RAT=8; const TYPE_BIRD=16; const TYPE_ALL=31; private $config; public function __construct($config){ $this->config=$config; if($this->is(Config::TYPE_CAT)){ echo 'cat '; } if($this->is(Config::TYPE_DOG)){ echo 'dog '; } if($this->is(Config::TYPE_RAT)){ echo 'rat '; } if($this->is(Config::TYPE_LION)){ echo 'lion '; } if($this->is(Config::TYPE_BIRD)){ echo 'bird '; } echo "\n"; } private function is($value){ return $this->config & $value; } } new Config(Config::TYPE_ALL); // cat dog rat lion bird new Config(Config::TYPE_BIRD); //bird new Config(Config::TYPE_BIRD | Config::TYPE_DOG); //dog bird new Config(Config::TYPE_ALL & ~Config::TYPE_DOG & ~Config::TYPE_CAT); //rat lion bird 

==用于检查相等性而不考虑variables数据types

===用于检查variables值是否相等,并且这两个variables都是相同的数据types

$ a = 5;

  1. 如果($ a == 5) – 它将返回true

  2. 如果($ a =='5') – 它将返回true,因为在比较这两个值时,php在内部将该string值转换为整数,然后将两个值

  3. 如果($ a === 5) – 它将返回true。

  4. if($ a ==='5') – 它会返回false,因为value是5,但是这个值5不是整型。