[PHP-users 1601] Re: include の戻り値。

Osamu Shigematsu php-users@php.gr.jp
Tue, 28 Aug 2001 18:50:52 +0900


重松です。こんにちは。

on 01.8.28 6:12 PM, Mayumi Nakajima at mayumi@b-wave.co.jp wrote:

> ローカルでもだめでした。
> 引数を持たせただけで、次のような警告が出てしまうからです。
> 引数を持たせなければ、うまくいきます。
> 
> Failed opening 'test2.php?test=aaa' for inclusion
> (include_path='.:/usr/local/lib/php')

やりたいことが今ひとつ理解できていないのですが、POST した値は、基本的にグロー
バル変数として取り扱えます。あるいは、$HTTP_POST_VARS という配列でアクセスで
きます。

なので、その「test2.php」というファイルの $test という変数に 'aaa' という値
を渡したいなら、

$test = 'aaa';
$result = include($path_to_test2_php . 'test2.php');

とでもすればいいだけじゃないんですか?

もし、test2.php のなかで、わざわざ $HTTP_POST_VARS[test] とかして、アクセス
していたら、

$HTTP_POST_VARS['test'] = 'aaa';

とするとか?
# $HTTP_POST_VARS って書き込み可能ならば、ですが。。。

値だってそんなことをして返さなくても、適当な変数に入れて返せばよいだけのこと
ではないんですか?

テストするまでもないけど、一応動作確認してみました

index.php の内容

<?php
    $test = 'aaa';
    print $result = include('test.inc');
?>

test.inc の内容
<?php
    return sprintf("Hello, %s!", $test);
?>

実行結果
Hello, aaa!

環境は、
    Apache 1.3.20
    PHP 4.0.6
です。

動かない理由をどうしても追及したいなら、ソースを読むとか?

-- 
Osamu Shigematsu

http://www.ravi.ne.jp/
mailto:shige@ravi.ne.jp