- ob_get_clean: documentation ( source)
- assert: documentation ( source)
- ob_start: documentation ( source)
- str_contains: documentation ( source)
<?php
declare(strict_types=1); // print() ignores strict_types...
print(1 + 2) * 3;
// outputs "9"; the parentheses cause 1+2 to be evaluated first, then 3*3
// the print statement sees the whole expression as one argument
// As for the type mismatch? the strict_types ? ignored..
echo "\n";
if ( print("hello") && false ) {
print "WTF: inside if";
} else {
print "OK: inside else";
}
echo "\n";
if ( 1 && false ) {
print "WTF: inside if";
} else {
print "OK: inside else";
}
echo "\n";
print "hello " && print "world";
// outputs "world1"; ... WTF?
echo "\n";
ob_start();
print "hello " && print "world";
$str = ob_get_clean();
assert(str_contains($str, 'hello'));