gpt4 book ai didi

php - PHP中&2中的&是什么意思?

转载 作者:行者123 更新时间:2023-12-02 01:41:10 25 4
gpt4 key购买 nike

下面代码的最后一行有&2, if($page['special']&2)。

&是什么意思?

if(isset($_REQUEST['id']))$id=(int)$_REQUEST['id'];
else $id=0;
if($id){ // check that page exists
$page=dbRow("SELECT * FROM pages WHERE id=$id");
if($page!==false){
$page_vars=json_decode($page['vars'],true);
$edit=true;
}
}
if(!isset($edit)){
$parent=isset($_REQUEST['parent'])?(int)$_REQUEST['parent']:0;
$special=0;
if(isset($_REQUEST['hidden']))$special+=2;
$page=array('parent'=>$parent,'type'=>'0','body'=>'','name'=>'','title'=>'','ord'=>0,'description'=>'','id'=>0,'keywords'=>'','special'=>$special,'template'=>'');
$page_vars=array();
$id=0;
$edit=false;
}

// { if page is hidden from navigation, show a message saying that
if($page['special']&2)echo '<em>NOTE: this page is currently hidden from the front-end navigation. Use the "Advanced Options" to un-hide it.</em>';

最佳答案

$page['special'] & 2

表示

$page['special'] bitwise AND 2

它主要检查 $page['special'] 中是否设置了 2 位。

这一行:

if(isset($_REQUEST['hidden']))$special+=2;

显式地将 2 添加到 $special 中,以满足按位 AND 运算和比较,因为十进制 2 == 二进制 10,其中 1 代表 21 位,确保已设置。

如果设置了 2 位,AND 运算将返回 2,这在 PHP 中解析为 true 并满足条件;否则返回 0,被认为是 false

在我看来,这是一个相当巧妙的技巧,但不确定它有多安全。

关于php - PHP中&2中的&是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4705262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com