0

phpのinclude関数を使用して、コードをより明確にしようとしています。3つのページで同じコード部分を使用していますが、このページの1つは、コードのこの部分を実行するときに呼び出すページと同じです。だから私は代わりにできますか

action="<?=$_SERVER['PHP_SELF']?>"

このページのリンクを使用するには(action = "thispage.php")?また、インクルードを使用するには、コードがまったく同じである必要がありますか?つまり、コードの一部がほとんど同じで、いくつかの小さな点が変更されているだけです。各ページのように、選択したリンクに適用するcssスタイルがあります。含まれているコードの一部を変更する方法はありますか?ありがとうございました!

4

2 に答える 2

1

確かに、できます。はるかに簡単な方法はaction=""、フォーム上にあるときに使用することですが。空の文字列は、現在表示しているページにフォームを送信するようにブラウザに指示します。

ファイルを含めると、実際にはコードに含まれるため、現在のスコープ内のすべての変数を「継承」します。ファイル内で変数を定義してから、他のファイルの条件内でその変数を使用して、それが何をすべきかを正確に判断できます。

于 2012-04-09T17:35:36.607 に答える
0

さて、あなたはあなたがいくつかのパラメータを渡すことができる関数を作ることができます:

function include_partial($path, $options = array()) {
    extract($options); // import array keys as local variables
    include($file);
}

// usage
include_partial('/path/to/file', array('action' => $_SERVER['PHP_SELF']);

もちろん、関数jsutがインクルードしているファイルの変数を設定しなくても同じことができます。

$action = $_SERVER['PHP_SELF'];
include('/path/to/file');

この関数で私が気に入っているのは、変数のスコープを設定できるため、グローバルスコープを継続的に使用できることです。

于 2012-04-09T17:35:06.280 に答える