おぎろぐはてブロスマートフォン用の表示で見るおぎろぐはてブロなんだかんだエンジニアになって10年以上この広告は、90日以上更新していないブログに表示しています。php-src※この記事ではちと勘違いがあったので、次のエントリも一緒に読んでください。くまさんからのリクエスト。func_get_argsなどの関数の引数を受け取る関数は、任意の引数を取る関数などを書く際によく使います。parameterと警告でちゃうこと。この関数は、カレントスコープに依存してパラメータの詳細を決定しますので、関数パラメータとして使用することはできません。この値を渡さなければならない場合、戻り値を変数に割り当て、その変数を渡してください。Manualと書いてある。(参照渡しであればその参照)がhogeに渡るわけで、これができないことになる。やるとスコープが違うとはどういうことだろう。変数スコープと、この関数が見に行くパラメータ引数のスコープは違うからさ、ってこと。どちらかというと、そういう仕様ですってことだな。func_get_argsのコードまずは、関数がどうなっているかを眺めてみます。*/意外にすっきりしていますが、普通のExtensionと違うのは、EG(argument_stack)とか変なモノを触っているということでしょう。ダブルポインタ操作のお勉強的なコードですね。zend_ptr_stack構造体という、汎用的なスタックです。スクリプト実行時に、関数やメソッドを呼び出すたびに、引数が積まれていくイメージです。zend_ptr_stack;関数を呼び出したときに、このスタックに引数が積まれるイメージです。ここでやってるのは、func_get_args()自体を呼び出す際にも引数を付けることができるワケで、その数の分だけデクリメントをしているという形。その次のところに、何かフラグが入っている模様。結局のところ、引数として呼び出そうとしたときは、何かしらスタックに積まれているので、一筋縄ではデータが取れないということでしょう。結局、スタックの積み方とかがよく分からないのですが、ポインタの動きを理解するために参考までに書いて見た絵を。PCで書くのうざいから手書き。どっかにargument_stackの詰め方の説明ないのかしらん。手抜きではないかという気もしなくもない。探しているところには無いとはいえ、スタックなのでさらに前に積んであるのです。}}と同じ結果が得られ、きちんと関数の引数のレベルを無視しているように見えます。まとめわかったこと関数の引数から呼び出したら、エラーが出る理由どちらにしろ、イケてないことわからないことEG(argument_stack)へのデータ格納の仕様こんなの調べても何にも役にたたないよ!※この記事ではちと勘違いがあったので、次のエントリも一緒に読んでください。entriesはてなブログをはじめよう!i_ogiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。