-3

「PhpWin2Kファイルマネージャー」と呼ばれるこのファイルマネージャーを使用しようとしています が、以下のエラーが発生します

非推奨:呼び出し時の参照渡しは166行目のC:\ xampp \ htdocs \ test \ explorer.phpで非推奨になりました非
推奨:呼び出し時の参照渡しはC:\ xampp \htdocs\で非推奨になりました214行目のtest\explorer.php
警告:opendir(c:/inetpub/wwwroot/,c:/inetpub/wwwroot/)[function.opendir]:システムは指定されたパスを見つけることができません。(コード:3)C:\ xampp \ htdocs \ test \ explorer.phpの91行目
警告:opendir(c:/ inetpub / wwwroot /)[function.opendir]:dirを開けませんでした:そのようなファイルまたはディレクトリはありませんC:\ xampp \ htdocs \ test \ explorer.php、91行目

どうしてこれなの?これは、Win2KではなくLinuxサーバーで実行しているためですか?

マイページ

4

1 に答える 1

2

&呼び出し時の参照渡しとは、変数の前にある演算子を使用して変数が関数に渡されることを意味します。例(someFunction(&$var);)。

PHP 5.4では、呼び出し時の参照渡しが廃止されました。これは、関数呼び出しで参照によって変数を渡すことができないことを意味します。正しい方法は、変数が常に参照によって渡されるように関数を定義することです。上記の呼び出しの関数定義は次のようになります。

function someFunction(&$iAmByReference) {
    $iAmByReference = 42;
}

呼び出すときは、変数の前に。を付ける必要はありません。&呼び出しは次のようになります。

$x = 32;
someFunction($x);
echo $x; // 42

関数定義が変数を参照変数として宣言するようにコードを変更し、&関数呼び出しからを削除する必要があります。

Linuxで実行していると言いますが、PHPエラーメッセージが表示されると、まだWindowsを使用しているように見えます。PHPによると、スクリプトはC:\xampp\htdocs\test\explorer.phpWindowsパスです。

ほとんど$_GET['dir']の場合、正しくないか、スクリプトがパスを間違って判別しています。そこで何が起こっているのかわからないので、スクリプトにどのようにアクセスしているかを確認する必要があります。最初のケースでは、実際にはコンマで区切られた2つのパスであるパスを開こうとしているように見えます。

于 2012-08-12T23:54:52.597 に答える