10/06/21 18:47:44 oQjyj8CX
外部変数にしたら出来るんですが。
これだとクラス変数と別に変数用意する手間が掛かって良くないです。
クラスの値が破壊、初期化されてからregister_shutdown_functionが起動すると思います。
回避する方法ないですか。PHP4です。
$Anum=0;
$a = new A();
$a->add();
$a->add();
class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; }
}
606:nobodyさん
10/06/21 19:00:35 oQjyj8CX
グローバル変数とクラスAをまとめたクラス作ったら成功しました。これで生き残る。
<?php
$b = new B();
$b->add();
$b->add();
class B {
var $Anum=0;
var $a;
function B() { $this->a = new A(); }
function add() { $this->a->add(); } }
class A {
function A() { global $Anum; $Anum=0;
register_shutdown_function( array( $this, '_A' ) ); }
function add() { global $Anum; $Anum++; }
function _A() { global $Anum; echo "num={$Anum} \n"; } }
?>
607:nobodyさん
10/06/21 19:09:33
PHP4系はオブジェクト指向まわりとかいろいろ
調子悪いので茨の道だぞ。
608:nobodyさん
10/06/21 19:14:46
classBの $Anumと
classAの $Anum 別物じゃん。
結局BがAのインスタンスもってるだけで >>605と同じ・・・
609:nobodyさん
10/06/21 19:16:50
PHP4環境ないから知らんけど
$a =& new A();
とかでしょどうせ。
610:nobodyさん
10/06/21 19:27:13 oQjyj8CX
&付きでうまくいきました。有り無しの違いが分からない
<?php
$a = & new A(); $a->add();
$b = & new A(); $b->add(); $b->add();
class A {
var $num;
function A() { $this->num=0; register_shutdown_function( array( &$this, '_A' ) ); }
function add() { $this->num++; }
function _A() { echo "num={$this->num} \n"; } }
?>
611:nobodyさん
10/06/21 19:29:54
&入れないとnew直後に別インスタンスにコピーされてしまう変態仕様だから。
PHP4 new演算子
とかでググれば出てくる。
612:nobodyさん
10/06/21 19:30:42 oQjyj8CX
サンクス
613:nobodyさん
10/06/21 19:34:20
PHP4はオブジェクトも値渡しだからな、よくはまる罠だった
>>598
>>609 + register_shutdown_function(array(&$this, '_A' ))
614:nobodyさん
10/06/21 22:56:57
習い始めたときは既にPHP5の時代だった俺は運が良かったのか
615:nobodyさん
10/06/21 23:23:53 oQjyj8CX
CURLのFTPアップロードで、
複数ファイルを持続接続でアップする方法ありますか。
毎回ログインする方法しか分かりません。
616:nobodyさん
10/06/21 23:39:00
>>615
URLリンク(jp.php.net)
これが参考になるかな
617:nobodyさん
10/06/21 23:46:41 oQjyj8CX
複数スレッドで動かせば、帯域を無駄なく使えて良いんですが。
PHP4だと>>616が使えないです。
FTPのログイン動作に3から10秒ほどかかるのでこの時間の転送量は0です。
ログイン省く方法無いですか。
618:nobodyさん
10/06/21 23:58:15
なんでPHP5にする選択はしないの?鯖代なんて月数百円だろ。
619:nobodyさん
10/06/22 02:55:15
よく分かんないけどFTPってそのまましゃべれないの?
620:nobodyさん
10/06/22 03:50:07
二人としゃべらないといけないからちょっと面倒
621:nobodyさん
10/06/22 09:02:05
さっさとせめてPHP5に乗り換えたほうがいいと思うけどね。
(そもそもPHP捨てたほうがいいというのは置いといてw)
622:nobodyさん
10/06/22 09:11:04
PHPはC++のスクリプト版+追加機能のようなものでもっとも有望なスクリプト言語。
PHPからC++のコード生成出来たり、実行ファイルが作れればいいのだが。
追加機能は例えば、static_php.libを組み込むことで実現出来たり。
623:nobodyさん
10/06/22 09:13:48
C++に翻訳するやつはここにあるんだけど。Windowsでは動かないらしい。だれか改良して対応してクリ。
HipHopはCentOSとFedora向けに開発されており、他のオペレーティングシステム上でのビルドは現在のところ機能しません。
HipHop for PHP
URLリンク(blog.candycane.jp)
624:nobodyさん
10/06/22 10:21:03
改良して対応してくれって言うけど、その分の人件費はどうなるの?
なんでもWebだったらタダでやってくれると思ってないか?
625:nobodyさん
10/06/22 10:41:41
Friendクラスも使えないしPHPダメでしょ。
まぁ使うけど。
5.3で静的遅延束縛が実装されて大分使いやすくなった。
626:nobodyさん
10/06/22 12:37:56
C++のfriendキーワードの事か?
今頃取り入れたらそれこそPHPらしいって言われるな