PHP
エラー
エラー対処
FatalError


概要

エラーTipsその1。


エラー内容

配列またはオブジェクトをキーとして使用することはできません。

これを行なうと、warning: Illegal offset type が発生します。


前提


  1. PHPの配列に関するエラー

  2. 配列のキーには「文字列」か「整数」しか指定できない


よくある原因

foreach と for 文の勘違い


実際にあったミス


なんか変なの配列のキーにつけちゃった→キーが配列扱い


間違い1

// 間違い

$sample = array(
['test'] => 'test' // 配列扱い
);

// 本来
$sample = array(
'test' => 'test'
);


これは単純にキーを配列に指定してしまっているというミスなので、大体の場合はキーの文字列「test」を囲んでいる「[」と「]」を取れば良い。


配列のキーに配列を指定してしまった→これも同じくキーが配列扱い


間違い2

$data = array(

array('foo') => 'bar'
);

これも間違い1と同様、キーを配列にしてしまっているミスなので、大体の場合はキーを文字列「foo」にしてあげれば良い。


配列のキーにオブジェクトを指定してしまった→キーがオブジェクト扱い


間違い3

$this->tableToModel[$this->table] = $this->alias;


cakePHPとかでありそうな間違いで「$this->table」がオブジェクトとなる。

オブジェクトではなく、この場合だとテーブル名を取得して入れてあげれば良い。