variant_xor
(PHP 5, PHP 7)
variant_xor — Performs a logical exclusion on two variants
Список параметров
-
left
-
The left operand.
-
right
-
The right operand.
Замечание:
Как и со всеми вариантными арифметическими функциями, параметры этой функции могут быть как родными PHP типами (integer, string, floating point, boolean или
NULL
), так и экземплярами классов COM, VARIANT или DOTNET. Родные PHP типы будут преобразованы в варианты (variants) по тем же самым правилам, что и в конструкторе класса VARIANT. У объектов COM и DOTNET будет взято и использовано их значение по умолчанию в качестве значения варианта.Вариантные арифметические функции являются обертками вокруг одноименных функций в библиотеке COM; для более подробной информации по этим функциям проконсультируйтесь с библиотекой MSDN. Названия PHP-функций немного отличаются; например, variant_add() в PHP соответствует VarAdd() в документации MSDN.
Возвращаемые значения
If left is |
If right is |
then the result is |
---|---|---|
TRUE | TRUE | FALSE |
TRUE | FALSE | TRUE |
FALSE | TRUE | TRUE |
FALSE | FALSE | FALSE |
NULL | NULL | NULL |
Смотрите также
- variant_or() - Performs a logical disjunction on two variants
- variant_and() - Performs a bitwise AND operation between two variants
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения только для Windows
- COM и .Net (Windows)
- com_create_guid
- com_event_sink
- com_get_active_object
- com_load_typelib
- com_message_pump
- com_print_typeinfo
- variant_abs
- variant_add
- variant_and
- variant_cast
- variant_cat
- variant_cmp
- variant_date_from_timestamp
- variant_date_to_timestamp
- variant_div
- variant_eqv
- variant_fix
- variant_get_type
- variant_idiv
- variant_imp
- variant_int
- variant_mod
- variant_mul
- variant_neg
- variant_not
- variant_or
- variant_pow
- variant_round
- variant_set_type
- variant_set
- variant_sub
- variant_xor
Коментарии
I've been using a lot the VARIANT_XOR function (all the VARIANT functions ar cool) and I was faceing the problem that some custom copilation of PHP, especially LAMP packs, doesn't have the VARANT functions included, so the scripts halts.
I had to find an alternative for those who doesn't have an implamentation of VARIANT_XOR.
I'd love if somebody improve my "A_XOR_B" function by changing the name in "VARIANT_XOR" and to run the original VARIANT_XOR function (being optimized) if it is already in the PHP compilation, else run the custom XOR code.
<?php
function a_xor_b($a=0, $b=0) {
return ( ($a!=$b) && ($a||$b) ) ? TRUE : FALSE ;
}
?>
If using this function, make sure you use the same type for arguments ;-)
Here is a sample code using it:
<?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;
?>
The use of VARIANT_XOR was identical.
@PHP TEAM: the VARIANT set is so great :-)
I've been using a lot the VARIANT_XOR function (all the VARIANT functions ar cool) and I was faceing the problem that some custom copilation of PHP, especially LAMP packs, doesn't have the VARANT functions included, so the scripts halts.
I had to find an alternative for those who doesn't have an implamentation of VARIANT_XOR.
I'd love if somebody improve my "A_XOR_B" function by changing the name in "VARIANT_XOR" and to run the original VARIANT_XOR function (being optimized) if it is already in the PHP compilation, else run the custom XOR code.
<?php
function a_xor_b($a=0, $b=0) {
return ( ($a!=$b) && ($a||$b) ) ? TRUE : FALSE ;
}
?>
If using this function, make sure you use the same type for arguments ;-)
Here is a sample code using it:
<?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;
?>
The use of VARIANT_XOR was identical.
@PHP TEAM: the VARIANT set is so great :-)
I've been using a lot the VARIANT_XOR function (all the VARIANT functions ar cool) and I was faceing the problem that some custom copilation of PHP, especially LAMP packs, doesn't have the VARANT functions included, so the scripts halts.
I had to find an alternative for those who doesn't have an implamentation of VARIANT_XOR.
I'd love if somebody improve my "A_XOR_B" function by changing the name in "VARIANT_XOR" and to run the original VARIANT_XOR function (being optimized) if it is already in the PHP compilation, else run the custom XOR code.
<?php
function a_xor_b($a=0, $b=0) {
return ( ($a!=$b) && ($a||$b) ) ? TRUE : FALSE ;
}
?>
If using this function, make sure you use the same type for arguments ;-)
Here is a sample code using it:
<?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;
?>
The use of VARIANT_XOR was identical.
@PHP TEAM: the VARIANT set is so great :-)