Command-Line Scripts
Exit Code Models
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
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";
$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
$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
$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