これは非常に奇妙です。WordPress 3.7.1 にアップグレードしたところ、突然エラーが発生し始めました
PHP Warning: array_pop() expects parameter 1 to be array, null given in (...)
関連するコードは次のとおりです。
$User = array_pop($RM->DB->get_results($RM->DB->prepare(
'SELECT
`user_id` AS `ID`,
`api_key` AS `key`
FROM
`rm_users`
WHERE
user_id = %d'
, $user_value)));
ここでは、WordPress の $wpdb オブジェクトを使用してカスタム テーブルをクエリしています。奇妙なことは、これを次のように変更した場合です。
$Users = $RM->DB->get_results($RM->DB->prepare(
'SELECT
`user_id` AS `ID`,
`api_key` AS `key`
FROM
`rm_users`
WHERE
user_id = %d'
, $user_value));
$User = array_pop($Users);
それは完全にうまく機能します。array_pop が null パラメータを受け取っていた場合、$Users は null になり、同じエラーが発生しますが、null ではなく、エラーは発生しません。これは、WordPress の「get_results」メソッドを「array_pop」と一緒に使用するすべての場所で同じ方法です。
これは正当な php のバグですか、それとも、array_pop がメソッドの出力を直接取得できないようにする、私が認識していない深い仕組みがありますか?