2016-09-27 21 views
-2

私は現在、古いPHPで開発されたソフトウェアの非推奨機能をチェックしています。それは2006年に開発されました。そして、私はこの形式で多くの変数を見てきました。$_SESSION[name]または$_GET[name]です。引用符のない変数、異なる応答のライブとローカル

ここでの問題は、展開されたサイトでエラーが発生しないことです。しかし私の地方ではNotice: Use of undefined constant name - assumed 'name'となります。

私は各変数に一重引用符または二重引用符を追加することでこれを解決できることを知っていますが、編集する方法はたくさんあります。私はサーバーの設定にアクセスすることができません。

これは私のローカルではうまくいかない理由があります。私はPHP 5.6を使用します。

編集:私はちょうどその理由を知りたい。

ありがとうございました。

答えて

0

この種の奇妙なシナリオでは、E-Noticeのヒントがあります:Notice: Use of undefined constant name - assumed 'name'。あなたはサーバーにアクセスすることができないので(あなたがするまで)、時間的なFile say:_DEFINES.phpを作成し、それをあなたのスクリプトに含めてください。そのファイル内の、あなただけそうのような文字列としてこれらの変数を定義することがあります。

<?php 
    defined('name')   or define('name',   'name'); 
    defined('another_string') or define('another_string', 'another_value'); 
    defined('yet_another') or define('yet_another', 'yet_another'); 

その方法は、あなたが一時的に持っている悪夢を倒すことがあります...

注:これはの多くではありませんソリューション...あなたは、サーバー側から問題を解決できるまで、それだけの時間回避策です....私はDでき

+0

感謝私が知る必要があるのは、それが動作する理由です。私はライブソフトウェアのコピーを使用しています。しかし、それは異なってレンダリングされます。 – makoto

+1

@makotoその理由は、すでに「E-Notice」に掲載されているためです。これは 'name'が' String'であると期待しているが、 'Constant'と思われるものが見つかったからです。 PHPエンジンはその定数をどこでも見つけることができないので、 'FALSE CONSTANT'を' LITERAL STRING EQUIVALENT'に変換して自動的に助けようとします。 *宣言されていないConstantを単純なStringに変換しました。**これは... – Poiz

関連する問題