PHP Conference Japan 2024

variant_xor

(PHP 5, PHP 7, PHP 8)

variant_xor对两个变体执行逻辑异或

描述

variant_xor(混合 $left, 混合 $right): variant

执行逻辑异或。

参数

左操作数

左操作数。

右操作数

右操作数。

注意:

与所有变体算术函数一样,此函数的参数可以是PHP原生类型(整数、字符串、浮点数、布尔值或null),也可以是COM、VARIANT或DOTNET类的实例。PHP原生类型将使用与variant类构造函数中相同的规则转换为变体。COM和DOTNET对象的默认属性值将作为变体值使用。

变体算术函数是COM库中同名函数的包装器;有关这些函数的更多信息,请查阅MSDN库。PHP函数的命名略有不同;例如,PHP中的variant_add()对应于MSDN文档中的VarAdd()

返回值

变体异或规则
如果left 如果right 则结果是
truetruefalse
truefalsetrue
falsetruetrue
falsefalsefalse
nullnullnull

错误/异常

失败时抛出com_exception

参见

添加注释

用户贡献的注释 3 条注释

tinelbarb at yahoo dot com
14年前
我一直在大量使用VARIANT_XOR函数(所有VARIANT函数都很酷),我遇到了这样一个问题:某些自定义编译的PHP,特别是LAMP包,没有包含VARIANT函数,因此脚本会停止。
我必须为那些没有VARIANT_XOR实现的人找到一个替代方案。
如果有人通过将名称更改为“VARIANT_XOR”并(如果已在PHP编译中)运行原始VARIANT_XOR函数(经过优化),否则运行自定义XOR代码来改进我的“A_XOR_B”函数,我将不胜感激。

<?php
function a_xor_b($a=0, $b=0) {
return ( (
$a!=$b) && ($a||$b) ) ? TRUE : FALSE ;
}
?>

如果使用此函数,请确保为参数使用相同的类型 ;-)

这是一个使用它的示例代码

<?php
if ( a_xor_b(strlen($column1)>0,strlen($column2)>0) ) {
$add_and='';
}
if ( !
a_xor_b(strlen($column1)>0,strlen($column2)>0 ) && strlen($column1)>0 ) {
$add_and=' and ';
}
$some_sql_filter=$query_str.' having '.$column1.$add_and.$column2;
?>

VARIANT_XOR的使用是相同的。

@PHP团队:VARIANT集合太棒了 :-)
tinelbarb at yahoo dot com
14年前
我一直在大量使用VARIANT_XOR函数(所有VARIANT函数都很酷),我遇到了这样一个问题:某些自定义编译的PHP,特别是LAMP包,没有包含VARIANT函数,因此脚本会停止。
我必须为那些没有VARIANT_XOR实现的人找到一个替代方案。
如果有人通过将名称更改为“VARIANT_XOR”并(如果已在PHP编译中)运行原始VARIANT_XOR函数(经过优化),否则运行自定义XOR代码来改进我的“A_XOR_B”函数,我将不胜感激。

<?php
function a_xor_b($a=0, $b=0) {
return ( (
$a!=$b) && ($a||$b) ) ? TRUE : FALSE ;
}
?>

如果使用此函数,请确保为参数使用相同的类型 ;-)

这是一个使用它的示例代码

<?php
if ( a_xor_b(strlen($column1)>0,strlen($column2)>0) ) {
$add_and='';
}
if ( !
a_xor_b(strlen($column1)>0,strlen($column2)>0 ) && strlen($column1)>0 ) {
$add_and=' and ';
}
$some_sql_filter=$query_str.' having '.$column1.$add_and.$column2;
?>

VARIANT_XOR的使用是相同的。

@PHP团队:VARIANT集合太棒了 :-)
tinelbarb at yahoo dot com dot RE-MO-VE dot ME
14年前
我一直在大量使用VARIANT_XOR函数(所有VARIANT函数都很酷),我遇到了这样一个问题:某些自定义编译的PHP,特别是LAMP包,没有包含VARIANT函数,因此脚本会停止。
我必须为那些没有VARIANT_XOR实现的人找到一个替代方案。
如果有人通过将名称更改为“VARIANT_XOR”并(如果已在PHP编译中)运行原始VARIANT_XOR函数(经过优化),否则运行自定义XOR代码来改进我的“A_XOR_B”函数,我将不胜感激。

<?php
function a_xor_b($a=0, $b=0) {
return ( (
$a!=$b) && ($a||$b) ) ? TRUE : FALSE ;
}
?>

如果使用此函数,请确保为参数使用相同的类型 ;-)

这是一个使用它的示例代码

<?php
if ( a_xor_b(strlen($column1)>0,strlen($column2)>0) ) {
$add_and='';
}
if ( !
a_xor_b(strlen($column1)>0,strlen($column2)>0 ) && strlen($column1)>0 ) {
$add_and=' and ';
}
$some_sql_filter=$query_str.' having '.$column1.$add_and.$column2;
?>

VARIANT_XOR的使用是相同的。

@PHP团队:VARIANT集合太棒了 :-)
To Top