LoginSignup
15
8

More than 5 years have passed since last update.

[warning] Illegal offset type

Posted at

概要

エラー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」がオブジェクトとなる。
オブジェクトではなく、この場合だとテーブル名を取得して入れてあげれば良い。

15
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
8