Compute the status code a script would return.

exit-code-model Static lessons should not actually exit early. A script can compute the code it would return and print that scalar result.

Exit Code Models

failed
exit_code_model.php
Replay: real traced execution (multi-file project)
<?php
$failed = 1;
$code = $failed > 0 ? 1 : 0;
$label = $code === 0 ? "success" : "failure";

echo "failed=" . $failed . "\n";
echo "code=" . $code . "\n";
echo "label=" . $label . "\n";
<?php
$failed = 0;
$code = $failed > 0 ? 1 : 0;
$label = $code === 0 ? "success" : "failure";

echo "failed=" . $failed . "\n";
echo "code=" . $code . "\n";
echo "label=" . $label . "\n";
<?php
$failed = 3;
$code = $failed > 0 ? 1 : 0;
$label = $code === 0 ? "success" : "failure";

echo "failed=" . $failed . "\n";
echo "code=" . $code . "\n";
echo "label=" . $label . "\n";
  1. $failed ← 1, $code ← 1, $label ← failure

    1<?php2$failed→ 1 = 1; //@failed=0, 33$code→ 1 = $failed1 > 0 ? 1 : 0;4$label→ failure = $code1 === 0 ? "success" : "failure";56echo "failed=" . $failed1 . "\n";7echo "code=" . $code1 . "\n";8echo "label=" . $labelfailure . "\n";
    outputfailed=1
    code=1
    label=failure
  1. $failed ← 0, $code ← 0, $label ← success

    1<?php2$failed→ 0 = 0;3$code→ 0 = $failed0 > 0 ? 1 : 0;4$label→ success = $code0 === 0 ? "success" : "failure";56echo "failed=" . $failed0 . "\n";7echo "code=" . $code0 . "\n";8echo "label=" . $labelsuccess . "\n";
    outputfailed=0
    code=0
    label=success
  1. $failed ← 3, $code ← 1, $label ← failure

    1<?php2$failed→ 3 = 3;3$code→ 1 = $failed3 > 0 ? 1 : 0;4$label→ failure = $code1 === 0 ? "success" : "failure";56echo "failed=" . $failed3 . "\n";7echo "code=" . $code1 . "\n";8echo "label=" . $labelfailure . "\n";
    outputfailed=3
    code=1
    label=failure