SWIG を使用して PHP で C++ ライブラリを使用しようとしていますが、すべて正常に動作し、共有オブジェクトを正確に生成しました。インターフェイス ファイルに phppointers.i と std_string.i も含めます。しかし、入力セクションに参照またはポインター引数を持つ C++ メソッドを呼び出したい場合、メソッドが正しく機能しないか、次のようなエラーが発生しました。
Fatal error:no matching function
たとえば、私のメソッドの1つは以下のように宣言されています:
int func(string &ptr,bool space=true) const;
しかし、PHPコードでこのメソッドを次のように呼び出すと:
$bf->func('abcd',true);
このエラーが発生しました:
Fatal error:no matching function
次のような他の方法でこの関数を呼び出そうとしました:
$str = 'abcd';
$bf->func(&$str,true);
しかし、今回は次のエラーが発生しました:
Fatal error: Call-time pass-by-reference has been removed
私は完全に混乱しています。誰かがこの問題で私を助けてくれれば本当に感謝しています。