お役立ち記事・ブログ
保守管理を請け負っているあるサイトのリニューアルに伴い、プログラムのカスタマイズを行っていましたが(初期開発は別の開発会社が請け負い)、変更していない部分で次のようなワーニングメッセージが出ていました。
※一部伏字にしています。
Warning: usort() expects parameter 2 to be a valid callback, function ‘course_cmp_func’ not found or invalid function name in /var/www/xxxx/xxxxx/xxxxx.php on line 106 Warning: usort() expects parameter 2 to be a valid callback, function ‘course_cmp_func’ not found or invalid function name in /var/www/xxxx/xxxxx/xxxxx.php on line 106
すでに公開されているプログラムなのにおかしいとは思いながら、該当の箇所を見てみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
public function aaaa ($v){ ・ ・ ・ usort( $v, "course_cmp_func" ); ・ ・ ・ static function course_cmp_func( $a, $b ) { return cmp( $a[ 'course_id' ], $b[ 'course_id' ] ); } // 汎用比較関数 // http://php.net/manual/ja/function.usort.php static function cmp( $a, $b ) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } |
usort関数は正直あまり使ったことがないので、どこが悪いかパッと見ではわからず、検索してみてもピッタリな正解が見つからず...
それでもいろいろな方向から検索したり試行錯誤をしてみて、ようやく解消しました。
1 2 3 |
static function course_cmp_func( $a, $b ) { return cmp( $a[ 'course_id' ], $b[ 'course_id' ] ); } |
の「cmp( $a[ ‘course_id’ ], $b[ ‘course_id’ ] );」を「self::( $a[ ‘course_id’ ], $b[ ‘course_id’ ] );」にすれば良いだけでした。
同じ悩みにハマっている人のために、備忘録として残しておきます。
ホームページ・ポータルサイト制作、起業支援に関することはお気軽にご相談・お問い合わせください
TEL:050-3152-1848
電話受付時間:平日9:30~18:30
メールでのお問い合わせは24時間受付OK!(無料)
メール受付はコチラ