@ 2015-03-24T13:00:00Z <?php
error_reporting(0);
function testBinaryOperators()
{
$asserts = [
INativeType::TYPE_INT => [
function () { (false || $a) instanceof $a; },
function () { 1 + 1; },
function () { 1 - 1; },
function () { 1 * 1; },
function () { 1 & 1; },
function () { '' & 1; },
function () { 1 | 1; },
function () { '' | 1; },
function () { 1 << 1; },
function () { 1.0 << 1; },
function () { 1 >> 1; },
function () { 1 >> 1.0; },
function () { 1 ^ 1; },
function () { 1 ^ 1.0; },
function () { 1.0 ^ 1.0; },
],
INativeType::TYPE_DOUBLE => [
function () { 1 + 1.0; },
function () { 1.0 + 1; },
function () { 1.0 + 1.0; },
function () { 1 - 1.0; },
function () { 1.0 - 1; },
function () { 1.0 - 1.0; },
function () { 1 * 1.0; },
function () { 1.0 * 1; },
function () { 1.0 * 1.0; },
function () { 3.4 / 24; },
function () { 34 / 2.4; },
function () { 3.4 / 2.34; },
],
INativeType::TYPE_BOOL => [
function () { 1 && 1.0; },
function () { 1 && 0; },
function () { true && 0; },
function () { 0 && true; },
function () { false && true; },
function () { '' && true; },
function () { false && ''; },
function () { 2.3 && true; },
function () { false && 2.1; },
function () { [] && true; },
function () { false && [1,2]; },
function () { 1 || 1.0; },
function () { 1 || 0; },
function () { true || 0; },
function () { 0 || true; },
function () { false || true; },
function () { '' || true; },
function () { false || ''; },
function () { 2.3 || true; },
function () { false || 2.1; },
function () { [] || true; },
function () { false || [1,2]; },
function () { 3 < 3; },
function () { 3 < 3.0; },
function () { 3 < '3'; },
function () { 3 <= 3; },
function () { 3 <= '3'; },
function () { 3.0 <= 3; },
function () { 3 > 3; },
function () { 3.0 > 3; },
function () { 3 > '3'; },
function () { 3 > 3.0; },
function () { 3.0 >= 3; },
function () { 3 >= 3.0; },
function () { 3 >= '3'; },
],
INativeType::TYPE_ARRAY => [
function () { [] + [1,2]; },
function () { [] + [1,2,3] + [2] + ['abc']; },
],
INativeType::TYPE_STRING => [
function () { 'abc' . '123'; },
function () { 'abc' . 123; },
function () { 'abc' . 123.42; },
function () { 123 . 'ab'; },
function () { 123.42 . 'a'; },
function () { 2 . 3.45; },
function () { false . ''; },
function () { '' . true; },
function () { false . true; },
function () { false . 3.2; },
function () { 3 . 9; },
],
INativeType::TYPE_MIXED => [
function () { '123' + 1; },
function () { '123' - 1; },
function () { '123' * 1; },
function () { '123' + 1; },
function () { 3 + 'av1'; },
function () { 3 - 'av1'; },
function () { 3 * 'av1'; },
@function () { 3 / ('av1' . $a); },
@function () { 'as' + 'av1'; },
function () { 1 / 2; },
function () { 1 / 1; },
function () { '123' / 24; },
],
];
foreach($asserts as $expectedType => $expressions)
{
foreach($expressions as $expression) {
$this->assertReturnsNativeType($expression, $expectedType);
}
}
}
Enable javascript to submit You have javascript disabled. You will not be able to edit any code.
Output for 5.4.0 - 5.4.45 , 5.5.0 - 5.5.38 , 5.6.0 - 5.6.40 , 7.0.0 - 7.0.33 , 7.1.0 - 7.1.33 , 7.2.0 - 7.2.33 , 7.3.0 - 7.3.33 , 7.4.0 - 7.4.33 , 8.0.0 - 8.0.30 , 8.1.0 - 8.1.28 , 8.2.0 - 8.2.18 , 8.3.0 - 8.3.4 , 8.3.6 Output for 8.3.5 Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
preferences:dark mode live preview
273.36 ms | 401 KiB | 373 Q