【待望】PerlユーザのためのPHP入門 (601レス)
上下前次1-新
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;
しかし、いいかげんな仕様だね。
168: 03/03/06 08:29 ID:??? AAS
>>161
外部リンク[php]:www.php.net
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?
でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c; >>161
外部リンク[php]:www.php.net
演算子の優先順位が
省12
169: イ奄様 03/03/06 09:07 ID:??? AAS
これで勘弁してくれ
Perl
$a?$b:$c=1;
PHP
$a?$b=1:$c=1;
170: 俺様 03/03/06 09:53 ID:0wTJZFjp(2/6) AAS
では今日はフォームの受け渡しを書いておこう。
まずはhtml部分から。
<form action="../cgi-bin/test.cgi" method="POST">
名前: <input type="text" name="name" /><br>
性別: <br>
<input type="radio" value="男" name="sex" checked>男<br>
<input type="radio" value="女" name="sex">女<br>
<input type="submit" name="送信">
</form>
上下前次1-新書関写板覧索設栞歴
あと 431 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.012s