【待望】PerlユーザのためのPHP入門 (601レス)
1-

148
(1): 俺様 03/03/05 23:47 ID:MFbIbSdy(2/2) AAS
>>147
ん?>>146で言った逆っての間違ってたか?
そんなことはないと思うが・・・
149: 03/03/06 00:26 ID:??? AAS
>>145-148
てか>>137-138で既出だし。
150
(4): 03/03/06 00:48 ID:??? AAS
ふふふ。ひっかかったか。

Perlは三項演算子を左辺値として使える。
って全然利用価値はないけど、知ってるか試しただけ。
151: 03/03/06 00:49 ID:??? AAS
あぁ。$a ? $b : $c だな。・・
152
(1): 03/03/06 01:02 ID:uZwldhHh(1) AAS
>>150
ひっかかってた俺様晒しage
153: 03/03/06 01:05 ID:??? AAS
>>152
( ´,_ゝ`)プ
154: 俺様 03/03/06 01:07 ID:ZBXb+hSM(1/3) AAS
>>150
何が引っかかったのかよくわからん。
>>145は逆だからかエラーでてるし。
155: 俺様 03/03/06 01:13 ID:ZBXb+hSM(2/3) AAS
>>150
とりあえず
$a ? $b : $c = 1;
って正しく書いてくれたら面白かったのに。
まあ、またそういうのがあったら引っ掛けてみてクレイ。
156: [age] 03/03/06 01:22 ID:??? AAS
>>150
気持ちわりぃ〜・・・・(文法が)
157
(2): 俺様 03/03/06 01:34 ID:ZBXb+hSM(3/3) AAS
わからない点が出てきた(汗

$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・

ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
省1
158: 03/03/06 01:36 ID:??? AAS
俺様に、きもいストカー、スレ繁盛。   サラリーマン俳句
159: 03/03/06 01:41 ID:??? AAS
define("true",0);
160: 03/03/06 01:42 ID:??? AAS
さっき書いたもので十分。Perlは三項演算子(の2、3番目のやつ)が左辺値になれる。
なんと関数も左辺値にできる(ver 5.6辺り(?)以降から..)

my %hash;
sub hoge : lvalue {
my $key = shift;
return $hash{$key};
}

hoge('test') = 1;
print $hash{test};
161
(3): 03/03/06 01:43 ID:??? AAS
>>157
あほか?
$a?$b:($c=1);と解釈するからだろ。つーかそれが健全。
162: 03/03/06 01:52 ID:??? AAS
ごめん。またもや失敗。

return を使ってはいけない。とのこと。

sub hoge : lvalue {
my $key = shift;
$hash{$key};
}
163: 03/03/06 03:27 ID:??? AAS
C(gcc 2.95.3-6 mingw)はperlと同じ挙動を示した。
こんな書き方があるとは、知らなかった。。
164: 03/03/06 07:56 ID:??? AAS
わからない点が出てきた(汗

$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・

ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
省13
165: 03/03/06 07:56 ID:??? AAS
わからない点が出てきた(汗

$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・

ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
省11
166: 03/03/06 07:59 ID:??? AAS
粘着きもいお(○´∞`○)
167: 俺様 03/03/06 08:26 ID:0wTJZFjp(1/6) AAS
>>161
外部リンク[php]:www.php.net
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?

でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c;
しかし、いいかげんな仕様だね。
1-
あと 434 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s