私は自分のPHPページの冒頭で呼び出された関数を持っていますが、これはPHPのブロックで呼び出されていますが、HTML形式では呼び出されていません。 PHP関数のスコープはどのくらいですか、htmlフォームに含めるためにどのように拡張できますか?PHP関数のスコープ:どのように拡張するのですか?
私のコードの例を次に示します。 編集:これは私の実際のコードではありません。機能の範囲がどこに届かないのかを単純に示しています。
<?php
function foo(){
$x = 1;
return $x;
}
if (isset($_POST['submit1']) and ! empty($_POST['submit1'])){
$x = foo();
}
?>
<div>
<form action="" method="POST">
<input type='submit' name='submit1' value='Submit'>
</form>
</div>
<div>
<form action="" method="POST">
<?php
$x = foo();
echo "<input type='text' value='".$x."'>";
?>
<input type='submit' value='Submit' name='submit2'>
</form>
</div>
関数の最初のインスタンスは呼び出されますが、2番目のインスタンスは呼び出されません。誰かがなぜ私に説明することができますか? 2番目の形式で関数を再度作成する必要があるのですか、最初の関数の範囲を拡張する方法があります。 ありがとうございました!
編集:これは、リンクされた質問のような関数内の関数ではありません。これは私が元の関数にアクセスしたい別のPHPインスタンスです。
'$ x'の初期値は何ですか?' foo() 'に' $ x'をどう設定するのですか? – developer
何でもかまいません。私の場合は、私の場合、実際には配列の中に配列 – Adina
があり、 '<?php$ x = foo(); ?>「そうですか? – developer