我应该在这里做什么?



=& 参考

参考任务操作员在PHP, =& 什么意思是“=&”和“&="操作员在PHP? 什么意思是“&=”和“=&”操作员在PHP?

















PHP 中的奇怪打印行为?



= 任命运营商

三种不同的平等


如何区分PHP平等(==双等)和身份(===三等)比较操作员?PHP!=和 ==操作员3个不同的平等类型和(严格)较大的/较小的比较在PHP


=== 比较运营商






比特币运营商


上一篇: 逻辑运营商












[ ] Arrays (自 PHP 5.4 以来简短的合成)


PHP 短标签是否可用?


二角形字符范围




# One-line shell 风格评论


NullSafe Operator 通话(自 PHP 8.0 以来)

PHP 中有“零安全操作员”吗?



当前回答

运营商类型

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)

其他回答

零退款类型申报

PHP 7 添加支持返回类型声明. 类似于论点类型声明,返回类型声明指定将从函数返回的值类型. 相同的类型可用于返回类型声明,如论点类型声明。

严格打字也会影响返回类型声明. 在默认的弱模式中,返回值将被强迫到正确的类型,如果它们已经不属于该类型. 在强劲模式中,返回值必须属于正确的类型,否则,将被扔到 TypeError。

对于 PHP 7.1.0 而言,返回值可以通过预定类型名称与问答标(?)来标记为无值,这意味着函数返回指定类型或 NULL。

<?php
function get_item(): ?string {
    if (isset($_GET['item'])) {
        return $_GET['item'];
    } else {
        return null;
    }
}
?>

来源

NullSafe 操作员 “?>” 从 php8

在PHP8已经接受了这个新的运营商,你可以在这里找到文档。>它是NullSafe运营商,它返回零,如果你试图引用功能或从零获得值。

例子:

<?php
$obj = null;
$obj = $obj?->attr; //return null
$obj = ?->funct(); // return null
$obj = $objDrive->attr; // Error: Trying to get property 'attr' of non-object
?>

航天运营商 <=> (添加到 PHP 7)

<=> 航天运营商的例子(PHP 7、来源:PHP手册):

Integers, Floats, Strings, Arrays & Objects for 三路比较变量。

// 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
// Comparison is case-sensitive
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

_ Alias for gettext( )

作为 _() 的字符“_”是 gettext() 函数的标志。

什么是 \ (backslash) 符号在 PHP

它用于逃避字符串类型或更改特定案例:

例子:

在这里使用 \r\n 和 \n 转到新行(如输入按钮)


echo "Hello world \n\r I am Herakl";

否则,您可以使用 PHP_EOL. 有一些例外. 首先,它只能在两个引用(")状态使用。

echo " Hello \\ I am robot";

在 stackoverflow 中,它看不见正确。

Backslashes 也使用在名称空间或使用条件名称:

namespace App\Http\Controllers;

use App\Models;

此外,您还应该参观关于 https://www.php.net/manual/en/function.addslashes.php 的漏洞