2016-11-07 10 views
0

Iは機能配列が呼び出されていることページで、条件に基づいて2つの値を返す関数は、スクリーン上に出力する下にHTMLであるましたページ:html出力がIF statementの最初の部分から返されたものを後に停止するため停止HTML出力は

$message = submitMessage($username); 

<div class="r-box box-shadow"> 
    <h4 class="text-center weight-700"><?php echo $message[0];?></h4> 
    <p><?php echo $message[1];?></p> 
</div> 
//more html below etc 

私が欲しいものです。以下のような 何か:

function submitMessage($user) { 
if (!$user) { 
$a = "Message A"; 
$b = "Message B"; 
return array($a, $b); 
exit(); 
//would like the output to stop if this is met. 
} 
else { 
$a = "Message C"; 
$b = "Message D"; 
return array($a, $b); 
} 

は、私は上記のように、出口を追加しようとしたが、HTMLは、まだ画面に送信されます。最初の部分が満たされている場合、HTMLの出力を停止することは可能ですか?

+0

ようなものになるだろうあなたはそれを試してみましたか?何が起こった?それはあなたの期待とどう違うのですか? – Steve

+0

@Steveが質問を更新しました。 –

+0

'return'の後のものは無視されます。もしあなたが 'exit'に行くなら、配列を作成する点はありませんので、関数全体は単純に' if(!$ user)exit;を読むことができます。 $ a = '..'、$ b = '..'; return [$ a、$ b]; ' – Steve

答えて

0
<div class="r-box box-shadow"> 
    <h4 class="text-center weight-700"><?php echo $message[0];?></h4> 
    <p><?php echo $message[1];?></p> 
</div> 
<?php // if $message[1] is defined and not empty, exit 
    if ((isset($message[1])) && (!empty($message[1]))){die();} ?> 

//more html below etc 
+0

$ message [1]は両方の時間に定義されていますが、おそらく別の変数を追加してそれを試すことができます。 –

0

私はあなたを正しくしかし、あなたは、あなたが完全に出力を停止する必要がある場合はOutput bufferingを使用することですこれに PHP alternative syntax for control structures 他の代替手段を使用することができるもののようなもののために得るかはわかりません。 関数submitMessageは、exit();部分に到達する前に戻りますので、終了は実行されません。一方、実行した場合、サーバーはスクリプトの実行を停止するだけで、それ以降は出力されません。

代替sintaxこの

$message = submitMessage($username); 
<?php if (!$user): ?> 
<div class="r-box box-shadow"> 
<h4 class="text-center weight-700"><?php echo $message[0];?></h4> 
<p><?php echo $message[1];?></p> 
</div> 
<?php else: ?> 
some other html here 
<?php endif; ?> 
関連する問題