[解決済み] call_user_func() は、パラメータ 1 が有効なコールバックであることを期待します。
2022-02-04 11:45:50
質問
PHPのcall_user_func関数で遊んでいるのですが、この簡単なコードを実行すると、このエラーが発生します。
<?php
class A
{
public $var;
private function printHi()
{
echo "Hello";
}
public function __construct($string)
{
$this->var = $string;
}
public function foo()
{
call_user_func($this->var);
}
}
$a = new A('printHi');
$a->foo();
?>
クラスの外にprintHiという関数を作るとうまくいくのはわかるのですが、クラスのprint hiを参照しているので、なぜ"this"が登録されないのかがわかりません。
どうすればいいですか?
$this->var
が評価されるのは
printHi
の例では しかし、クラスのメソッドを呼び出す場合は、コールバックを配列で渡す必要があります。配列の最初の要素はオブジェクトのインスタンスで、2番目の要素は関数名です。
call_user_func(array($this, $this->var));
以下は、有効なコールバックに関するドキュメントです。 http://www.php.net/manual/en/language.types.callable.php
関連
-
[解決済み】PHP - 構文エラー、予期しないT_CONSTANT_ECAPSED_STRING [閉店].
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: バインドされた変数の数が102行目のトークンの数と一致しない [終了]
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: パラメータが定義されていません
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み】mysqli::query(): mysqli をフェッチできない
-
[解決済み] PHP は T_PAAMAYIM_NEKUDOTAYIM を予期していますか?
-
[解決済み] mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc. は、パラメータ 1 がリソースであることを期待する。
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] 無名関数におけるPHP変数
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Notice: 非オブジェクトのプロパティを取得しようとしているエラー
-
[解決済み】Weird PHP error: 'Can't use function return value in write context'.
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】新しいPHPMailerはPHPMailerAutoload.phpが必要?
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み】PHP フェイタルエラー。未定義の関数mssql_connect()をコールしています。
-
[解決済み] 入力ファイルが指定されていない
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。