初歩的な質問をさせて頂きます。
phpにてグローバル変数に配列を代入しようとしました。
しかし、array_push() expects parameter 1 to be array, null given と
エラーが出てしまいました。
色々なサイトを見たのですが、サンプルで載っているソースでは、
全てグローバル変数に文字列を代入しているだけ、配列を代入しているサイトが見つかりませんでした。
グローバル変数に配列を代入することは出来ないのでしょうか。
// グローバル変数 宣言・定義 $dataTableTitle = array(); // テーブルタイトル $limitTime = 16; $startDay = "2017/09/29"; class AsdfasdfsController extends AppController { (略) public function index() { global $dataTableTitle; $dataTable = array(); array_push($dataTableTitle, "['名 前' "); // ココでエラー array_push($dataTable, $this->_asdfasdf()); } public function _asdfasdf() { global $dataTableTitle; global $limitTime; global $startDay; $firstDay = date("m/d", strtotime($startDay)); array_push($dataTableTitle, ", '" . $firstDay . "'"); // ココでエラー $oneDay = date("m/d", strtotime($startDay)); $oneDayYY = date("Y/m/d", strtotime($startDay)); for ($t=2; $t<=$limitTime; $t++) { $oneDay = date("m/d", strtotime($oneDayYY . "+1 day")); $oneDayYY = date("Y/m/d", strtotime($oneDayYY . "+1 day")); array_push($dataTableTitle, ", '" . $oneDay . "'"); // ココでエラー } return $dataTableTitle; } (略) }
「public index()」では関数の定義として正しくありませんが、転記ミスでしょうか?
globalで配列を渡してarray_push()してみましたが、同エラー再現しませんでした。フレームワーク等使われていませんか?index()がどのように呼ばれているか明記してください。また、index()でglobalで渡された$dataTableTitleが定義した内容かどうか、渡した直後にvar_dump()するなどして確認してみてください。nullになっているような気がします。
このソースってclassの一部ですか? 部分部分の抜粋であればわかるようにしないといけませんね
public index() は pulbic function index() の表記間違いでした。
フレームワークはcakePHPを使用しております。
こちらはソースの一部です。外に class asdfasdfController extends AppController があります。
環境情報等は質問本文に追記してください。

回答1件
あなたの回答
tips
プレビュー