PHP:スクリプトまたは早期リターンを殺しますか?
質問
PHPでは、Die()を使用してスクリプト全体を殺すことができます。ただし、スクリプト全体が死ぬことなく、スクリプトが特定のポイントまで実行され、やめることを望んでいます。
このようなもの:
echo "Hello, what is your name?";
if($name == $blacklist)
{
echo "I don't talk to strangers";
die(); // This will break all the echos
}
else
// Stuff
スクリプトを終了し(エコーを終了点まで印刷します)、Die()を使用すると、実際にスクリプトが印刷されません。
何か案は?たぶん、cのように「0を返す」?
解決
できるよ:
die("I don't talk to strangers");
または:
echo "I don't talk to strangers";exit;
または単に「戻る」 return;
または throw new Exception("I don't talk to strangers");
他のヒント
想像する「スクリプト実行」はありません。
実際には、同じスクリプトが実行されているのではなく、同じスクリプトの2つのインスタンスがあります。最初に質問をし、2番目は答えを確認します。
PHPスクリプトの実行はAtomicです。ブラウザで絶えず実行されているデスクトップアプリケーションのようなものではなく、デスクトップアプリケーションに永続的な接続を持つデーモンでさえありません。それはコマンドラインユーティリティのようなものです - その仕事と出口を行います。個別に実行されます。
したがって、スクリプト全体ではなく、終了するコードの適切なブランチを選択する必要があります。
所属していません StackOverflow