質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

Q&A

解決済

1回答

3137閲覧

Codeigniter2のバージョンアップ用テスト環境の構築で/Systemフォルダ内ファイルに関連するNotice

nora_kuragen

総合スコア101

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CodeIgniter

CodeIgniterは、PHP向けオープンソースのWebアプリケーションフレームワークです。CodeIgniterは覚える構文が少なく、自由度も高いため、PHPを理解していれば構築が簡単です。

0グッド

0クリップ

投稿2017/07/11 03:08

CodeIgniter2を利用した古い送信フォームをバージョンアップするため、テスト環境を構築していますが、
環境構築中に以下のエラー(というかNotice)メッセージが発生しました。
なにぶんCodeIgniter自体を触るのが初めてなこともあり、様々な記事を参照していますが
/System 側のファイルのエラーということもあるので、
そもそもindex.phpにおけるパスの指定が何か間違っているのかとも考えております。

###発生している問題・エラーメッセージ
エラー1

A PHP Error was encountered Severity: Notice Message: Only variable references should be returned by reference Filename: core/Common.php Line Number: 257

エラー2

A PHP Error was encountered Severity: Notice Message: Only variables should be assigned by reference Filename: core/Loader.php Line Number: 74

###該当のソースコード
エラー1の該当function

PHP/CodeIgniter

1/** 2* Loads the main config.php file 3* 4* This function lets us grab the config file even if the Config class 5* hasn't been instantiated yet 6* 7* @access private 8* @return array 9*/ 10if ( ! function_exists('get_config')) 11{ 12 function &get_config($replace = array()) 13 { 14 static $_config; 15 16 if (isset($_config)) 17 { 18 return $_config[0]; 19 } 20 21 // Is the config file in the environment folder? 22 if ( ! defined('ENVIRONMENT') OR ! file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/config.php')) 23 { 24 $file_path = APPPATH.'config/config.php'; 25 } 26 27 // Fetch the config file 28 if ( ! file_exists($file_path)) 29 { 30 exit('The configuration file does not exist.'); 31 } 32 33 require($file_path); 34 35 // Does the $config array exist in the file? 36 if ( ! isset($config) OR ! is_array($config)) 37 { 38 exit('Your config file does not appear to be formatted correctly.'); 39 } 40 41 // Are any values being dynamically replaced? 42 if (count($replace) > 0) 43 { 44 foreach ($replace as $key => $val) 45 { 46 if (isset($config[$key])) 47 { 48 $config[$key] = $val; 49 } 50 } 51 } 52 53 return $_config[0] =& $config; 54 } 55}

最後のreturn $_config[0]=& $config; でNoticeが出ています。

エラー2の該当function

/** * Set _base_classes variable * * This method is called once in CI_Controller. * * @param array * @return object */ public function set_base_classes() { $this->_base_classes =& is_loaded(); return $this; }

$this->_base_classes =& is_loaded();の行がNoticeとして出ています。

###試したこと
index.phpの$system_pathと$application_folderを
ルートからの絶対パスで指定しています。
その他はデフォルトのままとなっております。

他、PHPの古い記述で「<? (コードの記述)~」となっているところは
「<?php (コードの記述)~」と直しています。

###補足情報(言語/FW/ツール等のバージョンなど)
CodeIgniter 2
PHP5.6.31
Zend Engine 2.6.0使用
Nginx

外注に依頼したもののようで、ドキュメントは残っていないようです。
他に必要な情報、ご不明な点等ございましたらご質問くださいませ。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決いたしました。
PHPのバージョンが上がった時にパスの参照がうまくいかなくなるのが原因だったようで、
該当の箇所を

PHP/CodeIgniter

1//return $_config[0] =& $config; 2return $_config[0];

PHP/CodeIgniter

1//$this->_base_classes =& is_loaded(); 2$this->_base_classes;

とすることによりひとまず動くようにはなりました。
後者の方は別の問題の発生源になった気がしますのでハマった場合は別に質問させていただきます。

投稿2017/07/11 05:37

nora_kuragen

総合スコア101

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問