さまざまな言語仕様について熱く語る闘技場
2008/12/08(月) 13:15:56ID:???
ROUND 1開始!
2008/12/08(月) 13:19:45ID:???
PHPのarray()は関数です。以上
2008/12/08(月) 18:38:20ID:???
配列を作るたびに、いちいち
array
って、書かないといけないの、なんとかならないの?
perlだったら、
@a=(1,2,3,4,5);
これで、すぐに配列作れるのに。
なんで、いちいち、arrayとかって、
言ってあげないとわからないの?
それと、配列のくせに、シジルが$なのも
むかつきます。納得できません。
array
って、書かないといけないの、なんとかならないの?
perlだったら、
@a=(1,2,3,4,5);
これで、すぐに配列作れるのに。
なんで、いちいち、arrayとかって、
言ってあげないとわからないの?
それと、配列のくせに、シジルが$なのも
むかつきます。納得できません。
2008/12/08(月) 18:41:45ID:???
仕様です
2008/12/08(月) 19:01:20ID:???
arrayは関数ではありません。以上
2008/12/08(月) 19:02:23ID:???
無知乙
関数ですよ
キミはperlから入ってきたからPHPの仕様をよく知らないようだ
関数ですよ
キミはperlから入ってきたからPHPの仕様をよく知らないようだ
2008/12/08(月) 19:05:18ID:???
>>6
無知な君のために証拠を見せてあげてもいいが、
見せてくれって頼まれてもいないのに見せたんじゃ、
知恵の押し売りになっちまうからな。
結論だけ。
システム仕様としてPHPのarrayは関数ではありません。
無知な君のために証拠を見せてあげてもいいが、
見せてくれって頼まれてもいないのに見せたんじゃ、
知恵の押し売りになっちまうからな。
結論だけ。
システム仕様としてPHPのarrayは関数ではありません。
2008/12/08(月) 20:34:25ID:???
popって、配列関係の関数に決まってるのに、なんで
いちいち、わざわざ
array_pop
とかって、「array」を接頭辞につけるの?
pop、だけで十分、意味がわかるし、通じるじゃん。
実際、perlでは、「pop」だけで世の中回ってるよ?
いちいち、わざわざ
array_pop
とかって、「array」を接頭辞につけるの?
pop、だけで十分、意味がわかるし、通じるじゃん。
実際、perlでは、「pop」だけで世の中回ってるよ?
10nobodyさん
2008/12/08(月) 20:45:50ID:??? perlしか知らないからそう思うのです
11nobodyさん
2008/12/09(火) 00:40:18ID:??? arrayは特殊ではあるが関数だよ
因みにissetやemptyは関数じゃない
因みにissetやemptyは関数じゃない
12nobodyさん
2008/12/09(火) 07:17:29ID:???13nobodyさん
2008/12/10(水) 14:05:11ID:??? 時代はwhitespaceですよ。
14nobodyさん
2008/12/10(水) 16:15:22ID:??? なにやら混乱があるようだけど、 array() は関数ではないよ。echo などと同
様、言語構成要素の一つ。
array($x, $y,) のように、array()は最後の引数のあとにも , を置くことがで
きる。
http://jp.php.net/manual/ja/function.array.php
これは、array()の評価のされ方が、関数と同じではないことを示している。一
般のユーザがPHPやCで関数を書いて、array()と同じ挙動をさせることはできな
い。このことから明らかに、array()はPHPの構文解析器そのものに組み込まれ
た言語構成要素。
また array()はコールバックとして他の関数に与えることもできない。
http://jp.php.net/manual/ja/language.pseudo-types.php
これもやはり、 array()が関数ではなく言語構成要素だから。LISPで言えば、
高階関数にスペシャルフォームを与えることはできないのと同じ。
様、言語構成要素の一つ。
array($x, $y,) のように、array()は最後の引数のあとにも , を置くことがで
きる。
http://jp.php.net/manual/ja/function.array.php
これは、array()の評価のされ方が、関数と同じではないことを示している。一
般のユーザがPHPやCで関数を書いて、array()と同じ挙動をさせることはできな
い。このことから明らかに、array()はPHPの構文解析器そのものに組み込まれ
た言語構成要素。
また array()はコールバックとして他の関数に与えることもできない。
http://jp.php.net/manual/ja/language.pseudo-types.php
これもやはり、 array()が関数ではなく言語構成要素だから。LISPで言えば、
高階関数にスペシャルフォームを与えることはできないのと同じ。
15nobodyさん
2008/12/10(水) 16:17:25ID:??? >>9
> popって、配列関係の関数に決まってるのに、なんで
> いちいち、わざわざ
> array_pop
> とかって、「array」を接頭辞につけるの?
それはたぶん、PHPに名前空間がなかったから。
Perlにはパッケージがある。
> popって、配列関係の関数に決まってるのに、なんで
> いちいち、わざわざ
> array_pop
> とかって、「array」を接頭辞につけるの?
それはたぶん、PHPに名前空間がなかったから。
Perlにはパッケージがある。
16nobodyさん
2008/12/10(水) 19:03:12ID:??? >>14
言語構成要素の1つではあるが何故関数で無いと言いきれるんだ?
arrayの注意点にはこうある
注意: array()は、実際にはリテラル配列を表現するための 言語構成要素であり、通常の関数ではありません。 echoやissetはこうだ
注意: これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。
arrayは言語構成要素の1つではあるが
言語構造では無く特殊な関数と言うことじゃねぇの?
ここらへんの説明よろしく
言語構成要素の1つではあるが何故関数で無いと言いきれるんだ?
arrayの注意点にはこうある
注意: array()は、実際にはリテラル配列を表現するための 言語構成要素であり、通常の関数ではありません。 echoやissetはこうだ
注意: これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。
arrayは言語構成要素の1つではあるが
言語構造では無く特殊な関数と言うことじゃねぇの?
ここらへんの説明よろしく
17nobodyさん
2008/12/10(水) 19:04:48ID:??? >>14
言語構成要素の1つではあるが何故関数で無いと言いきれるんだ?
arrayの注意点にはこうある
注意: array()は、実際にはリテラル配列を表現するための 言語構成要素であり、通常の関数ではありません。
echoやissetはこうだ
注意: これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。
arrayは言語構成要素の1つではあるが
言語構造では無く特殊な関数と言うことじゃねぇの?
ここらへんの説明よろしく
なんか改行が変になったので再
言語構成要素の1つではあるが何故関数で無いと言いきれるんだ?
arrayの注意点にはこうある
注意: array()は、実際にはリテラル配列を表現するための 言語構成要素であり、通常の関数ではありません。
echoやissetはこうだ
注意: これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。
arrayは言語構成要素の1つではあるが
言語構造では無く特殊な関数と言うことじゃねぇの?
ここらへんの説明よろしく
なんか改行が変になったので再
18nobodyさん
2008/12/10(水) 20:16:36ID:??? >>17
すまんが問われている意図がいまいちよくわからん。
逆に問い返させてくれ。
1. 「特殊な関数」って何だ?array()がその一つだと考えていることは分かっ
たが、他にはどんなのがある?
自分の考えでは、PHPには「特殊な関数」というカテゴリはない。関数か、そう
でないかだ。
で、関数かどうかは、「関数のように評価され実行されるもの」が関数だ。
array()は、構文解析器に備わった、関数を評価する汎用的な仕組みでは評価で
きないから関数ではない。
array()を評価するためには、構文解析器にarray()専用の仕組みが必要だ。
2. 「言語構成要素」と「言語構造」の違いは何だ?PHPではどれが言語構成要
素で、どれが言語構造なんだ?
自分の考えでは、この二者に違いはない。いずれも、構文解析器に専用の仕組
みを必要とするものだ。
すまんが問われている意図がいまいちよくわからん。
逆に問い返させてくれ。
1. 「特殊な関数」って何だ?array()がその一つだと考えていることは分かっ
たが、他にはどんなのがある?
自分の考えでは、PHPには「特殊な関数」というカテゴリはない。関数か、そう
でないかだ。
で、関数かどうかは、「関数のように評価され実行されるもの」が関数だ。
array()は、構文解析器に備わった、関数を評価する汎用的な仕組みでは評価で
きないから関数ではない。
array()を評価するためには、構文解析器にarray()専用の仕組みが必要だ。
2. 「言語構成要素」と「言語構造」の違いは何だ?PHPではどれが言語構成要
素で、どれが言語構造なんだ?
自分の考えでは、この二者に違いはない。いずれも、構文解析器に専用の仕組
みを必要とするものだ。
19nobodyさん
2008/12/10(水) 20:20:22ID:??? もしかしたらいるかもしれない外野のために補足すると、自分はLISPの、関数
とスペシャルフォーム(特殊形式)の解析方法の違いを念頭に置いて書いている。
とスペシャルフォーム(特殊形式)の解析方法の違いを念頭に置いて書いている。
20nobodyさん
2008/12/10(水) 20:22:10ID:??? そんな遠まわしに書かなくても、すっきり明快な答えの出し方がある。
もうすこし、関数を勉強してくれ、諸君。
もうすこし、関数を勉強してくれ、諸君。
21nobodyさん
2008/12/10(水) 20:26:39ID:??? そんな些細な言葉の違いを言うなら原文ではどっちもlanguage construct。
パーサトークンであり構文。
http://jp.php.net/manual/ja/tokens.php
注釈が違うのはそもそも何かを処理するものでもない
arrayを可変コールすることなんざまずないからじゃね。
パーサトークンであり構文。
http://jp.php.net/manual/ja/tokens.php
注釈が違うのはそもそも何かを処理するものでもない
arrayを可変コールすることなんざまずないからじゃね。
22nobodyさん
2008/12/10(水) 20:38:29ID:???23nobodyさん
2008/12/10(水) 20:40:14ID:??? >>18
> 自分の考えでは、PHPには「特殊な関数」というカテゴリはない。
> 関数か、そうでないかだ。
特殊関数 つ ttp://jp.php.net/manual/ja/language.oop.magic-functions.php
> 自分の考えでは、PHPには「特殊な関数」というカテゴリはない。
> 関数か、そうでないかだ。
特殊関数 つ ttp://jp.php.net/manual/ja/language.oop.magic-functions.php
2420
2008/12/10(水) 20:41:34ID:???25nobodyさん
2008/12/10(水) 20:51:32ID:???26nobodyさん
2008/12/10(水) 20:56:36ID:??? >>25
おれは何も勉強させたつもりはないし、有用な情報は提示していないが?
特殊関数といっても、普通はマジックメソッドってみんな言ってるやつを
訳者が特殊関数って書いてるだけだと思う。
だからどうということはないが。
おれは何も勉強させたつもりはないし、有用な情報は提示していないが?
特殊関数といっても、普通はマジックメソッドってみんな言ってるやつを
訳者が特殊関数って書いてるだけだと思う。
だからどうということはないが。
27nobodyさん
2008/12/10(水) 21:10:56ID:??? >>26
まあ勝手に感謝されたら気持ちが悪いかもしれないが、情報の価値はその受け
手が決めるもんです。PHP入門者の自分はまさにその情報を欲していた。
つうかあなたが「くだ質」スレに登場してたら、話は早かったのになあ。
http://pc11.2ch.net/test/read.cgi/php/1226517332/961-
http://pc11.2ch.net/test/read.cgi/php/1228667259/13-27
まあ自分はあっちのスレには書いてないけど。
マジックメソッドについては分かってる。今度は原文をちゃんと読んだし。
まあ勝手に感謝されたら気持ちが悪いかもしれないが、情報の価値はその受け
手が決めるもんです。PHP入門者の自分はまさにその情報を欲していた。
つうかあなたが「くだ質」スレに登場してたら、話は早かったのになあ。
http://pc11.2ch.net/test/read.cgi/php/1226517332/961-
http://pc11.2ch.net/test/read.cgi/php/1228667259/13-27
まあ自分はあっちのスレには書いてないけど。
マジックメソッドについては分かってる。今度は原文をちゃんと読んだし。
28nobodyさん
2008/12/10(水) 21:17:57ID:???29nobodyさん
2008/12/10(水) 21:51:32ID:???30nobodyさん
2008/12/10(水) 22:08:54ID:???31nobodyさん
2008/12/10(水) 22:19:26ID:???32nobodyさん
2008/12/10(水) 22:21:12ID:??? 日本語訳した野郎の勝手な解釈が含まれてるってことだお
33nobodyさん
2008/12/10(水) 22:24:30ID:??? [arrayは言語構造なの!] 攻撃:95 素早さ:40 防御:37 命中:83 運:43 HP:200
[arrayは関数だゴルァ!] 攻撃:28 素早さ:65 防御:37 命中:52 運:21 HP:163
arrayは言語構造なの! vs arrayは関数だゴルァ! 戦闘開始!!
[arrayは関数だゴルァ!]の攻撃 HIT [arrayは言語構造なの!]は1のダメージを受けた。
[arrayは言語構造なの!]の攻撃 HIT [arrayは関数だゴルァ!]は169のダメージを受けた。
[arrayは言語構造なの!]が[arrayは関数だゴルァ!]を倒しました(ラウンド数:1)。
[arrayは関数だゴルァ!] 攻撃:28 素早さ:65 防御:37 命中:52 運:21 HP:163
arrayは言語構造なの! vs arrayは関数だゴルァ! 戦闘開始!!
[arrayは関数だゴルァ!]の攻撃 HIT [arrayは言語構造なの!]は1のダメージを受けた。
[arrayは言語構造なの!]の攻撃 HIT [arrayは関数だゴルァ!]は169のダメージを受けた。
[arrayは言語構造なの!]が[arrayは関数だゴルァ!]を倒しました(ラウンド数:1)。
34nobodyさん
2008/12/10(水) 22:26:07ID:??? いや、原文があいまい。訳者は責められんと思う。
> Note: array() is a language construct used to represent literal
> arrays, and not a regular function.
> Note: array() is a language construct used to represent literal
> arrays, and not a regular function.
35nobodyさん
2008/12/10(水) 22:34:34ID:??? >>31
関数以外を特殊と言うのであれば
何故issetやemptyあとlist等に通常と言う言葉が無いのさ
arrayだけ別の表現をする意味が無いよね
しかもだ
言語構成要素であり、通常の関数ではありません。
と言語構成要素という言葉があるの通常の関数ではないと
態々関数だけど特殊だよという風な書き方をしている
関数以外を特殊と言うのであれば
何故issetやemptyあとlist等に通常と言う言葉が無いのさ
arrayだけ別の表現をする意味が無いよね
しかもだ
言語構成要素であり、通常の関数ではありません。
と言語構成要素という言葉があるの通常の関数ではないと
態々関数だけど特殊だよという風な書き方をしている
36nobodyさん
2008/12/10(水) 22:35:28ID:???37nobodyさん
2008/12/10(水) 22:40:46ID:???38nobodyさん
2008/12/10(水) 22:45:02ID:??? 顔真っ赤にして
http://pc11.2ch.net/test/read.cgi/php/1226517332/961
を否定してた奴涙目?
961の時点で正解出てるのに土曜日から今までほんとに何やってんだ
http://pc11.2ch.net/test/read.cgi/php/1226517332/961
を否定してた奴涙目?
961の時点で正解出てるのに土曜日から今までほんとに何やってんだ
39nobodyさん
2008/12/10(水) 22:46:02ID:??? 言語構造か関数かは元のソースコードを見て判断するしかないだろ
40nobodyさん
2008/12/10(水) 22:50:47ID:???41nobodyさん
2008/12/10(水) 22:57:43ID:??? だめなのは無知なのに理由もなく一方の主張を崩さず納得しない方だろ
疑問に思うなら自分で調べりゃいいのに
疑問に思うなら自分で調べりゃいいのに
42nobodyさん
2008/12/10(水) 22:59:45ID:???44nobodyさん
2008/12/10(水) 23:01:51ID:??? パーサトークンという言葉を説明すればいいのかと思ってググったが、
PHPマニュアルばかり引っかかって、自分涙目。
弱ったな。どこかに分かりやすい説明ない?(他力本願)
自分はLISPのごく簡単な処理系を作ってみる以外の方法を思いつかないが、
あまりにも非現実的すぎる。
ここで納得してもらうためだけに最低限必要な知識ってなんだろう。
PHPマニュアルばかり引っかかって、自分涙目。
弱ったな。どこかに分かりやすい説明ない?(他力本願)
自分はLISPのごく簡単な処理系を作ってみる以外の方法を思いつかないが、
あまりにも非現実的すぎる。
ここで納得してもらうためだけに最低限必要な知識ってなんだろう。
45nobodyさん
2008/12/10(水) 23:05:31ID:??? さてと、パーサートークンなんてのは傍証に過ぎない。
なぜなら、パーサートークンかつ関数な特殊な関数である可能性を否定できないから。
しかし、おれはもっと確実にわかる方法を知っている。
もう少し、勉強したらいいよ諸君。
なぜなら、パーサートークンかつ関数な特殊な関数である可能性を否定できないから。
しかし、おれはもっと確実にわかる方法を知っている。
もう少し、勉強したらいいよ諸君。
46nobodyさん
2008/12/10(水) 23:08:18ID:??? わかる方法を書いてくれないかな
知ったかなんていらねーんだよ
知ったかなんていらねーんだよ
47nobodyさん
2008/12/10(水) 23:12:55ID:??? >>45
> なぜなら、パーサートークンかつ関数な特殊な関数である可能性を否定できないから。
えー、そういう話なの?
演算子はトークンだけど、実際には関数が割り当てられている、みたいな?
ここで問題になってるのは構文解析で、実装はまた別の話だと思ってたよ。
> しかし、おれはもっと確実にわかる方法を知っている。
> もう少し、勉強したらいいよ諸君。
勉強はがんばりますので、どうか教えてください。
> なぜなら、パーサートークンかつ関数な特殊な関数である可能性を否定できないから。
えー、そういう話なの?
演算子はトークンだけど、実際には関数が割り当てられている、みたいな?
ここで問題になってるのは構文解析で、実装はまた別の話だと思ってたよ。
> しかし、おれはもっと確実にわかる方法を知っている。
> もう少し、勉強したらいいよ諸君。
勉強はがんばりますので、どうか教えてください。
48nobodyさん
2008/12/10(水) 23:24:50ID:??? 構文解析の話に絞ったのは君のハンドリングに過ぎない
45はロジックとして証明にならないといっているだけ
45はロジックとして証明にならないといっているだけ
49nobodyさん
2008/12/10(水) 23:35:07ID:??? システム上のことはコードで確認する。
文理上のことはドキュメントで確認するのが道理。
文理上のことはドキュメントで確認するのが道理。
50nobodyさん
2008/12/10(水) 23:44:02ID:??? 結局のところ、話のレイヤーが違うってことだよな。
ドキュメント上は関数に分類されてて明確に否定されてないので関数であると考えるのが妥当。
ドキュメントはいろんな要件で書かれるからレイヤーの違いを理解できない人がいても仕方ないか。
システム上は判定一つ書けば結論でるしな。あれとか、それとか。
ドキュメント上は関数に分類されてて明確に否定されてないので関数であると考えるのが妥当。
ドキュメントはいろんな要件で書かれるからレイヤーの違いを理解できない人がいても仕方ないか。
システム上は判定一つ書けば結論でるしな。あれとか、それとか。
51nobodyさん
2008/12/10(水) 23:46:15ID:??? 高木さんならわかるんじゃないのかね
52nobodyさん
2008/12/10(水) 23:51:08ID:??? で、システム上はこうよ
try {
ReflectionFunction::export("array");
} catch(Exception $e) {
echo $e->getMessage();
}
try {
ReflectionFunction::export("array");
} catch(Exception $e) {
echo $e->getMessage();
}
53nobodyさん
2008/12/10(水) 23:52:01ID:??? ま、function_existsで調べればtrue falseで返してくれるわけだけど。
55nobodyさん
2008/12/11(木) 00:02:45ID:??? ドキュメントもバグレポート出せば変わるから、
変わったその日から名実ともに関数じゃなくなるだろうね。
しかし、このルーズさというか曖昧さがPHPのいいところ
関数でも式でもないっていったって、言語構造っていったって、
if (include("test.php"))のreturnの扱いとか、特殊としか言いようがない。
変わったその日から名実ともに関数じゃなくなるだろうね。
しかし、このルーズさというか曖昧さがPHPのいいところ
関数でも式でもないっていったって、言語構造っていったって、
if (include("test.php"))のreturnの扱いとか、特殊としか言いようがない。
56nobodyさん
2008/12/11(木) 09:50:56ID:??? めんどくさいから海外のMLとに投稿したり開発元にメールして聞いてみたらいいんじゃないの
57nobodyさん
2008/12/11(木) 10:07:48ID:??? そろそろ結論でたでしょ。
・言語解析上は、array()はT_ARRAYであって、T_FUNCTIONではない。
・一般に関数とは、引数が与えられて一定の結果を返すものという意味では関数
・ドキュメント上では関数に分類されているが、T_FUNCTIONではないという注釈がつく
・パーサートークンの中には式(≒関数)として評価されるものがいくつかある。
・中でもarrayは関数的性質が強い。(副作用が少なく線形写像的)
・よって、ドキュメント上の表記に差異がある。
結論は各自が導きだせばよい
例1)array()は言語解析上は関数ではないが、一般論的には関数に分類される。
例2)array()は広義では関数だが、厳密には関数ではない。
例3)PHPの話をするなら言語解析だけで十分なので関数ではない。
などなど。
事情を分かった上であれば、害はない。
・言語解析上は、array()はT_ARRAYであって、T_FUNCTIONではない。
・一般に関数とは、引数が与えられて一定の結果を返すものという意味では関数
・ドキュメント上では関数に分類されているが、T_FUNCTIONではないという注釈がつく
・パーサートークンの中には式(≒関数)として評価されるものがいくつかある。
・中でもarrayは関数的性質が強い。(副作用が少なく線形写像的)
・よって、ドキュメント上の表記に差異がある。
結論は各自が導きだせばよい
例1)array()は言語解析上は関数ではないが、一般論的には関数に分類される。
例2)array()は広義では関数だが、厳密には関数ではない。
例3)PHPの話をするなら言語解析だけで十分なので関数ではない。
などなど。
事情を分かった上であれば、害はない。
58nobodyさん
2008/12/11(木) 17:25:38ID:??? 答えでてないじゃんあんたは例えだしてるだけでしょ
59nobodyさん
2008/12/11(木) 17:45:58ID:??? お、そうかい?
> 結論は各自が導きだせばよい
結論 = f(事情);
fの定義によって結論が変わるというのがこの現象のすべてで
その例を出せば十分だろう。
> 結論は各自が導きだせばよい
結論 = f(事情);
fの定義によって結論が変わるというのがこの現象のすべてで
その例を出せば十分だろう。
60nobodyさん
2008/12/11(木) 18:23:36ID:??? echoが文字を出力するという結論に代わりがないように
arrayもだせよ
arrayもだせよ
61nobodyさん
2008/12/11(木) 18:32:01ID:??? おいおい
> echoが文字を出力する
それは何の結論なんだよ
> echoが文字を出力する
それは何の結論なんだよ
62nobodyさん
2008/12/11(木) 18:34:06ID:??? 例1 echoは文字を出力する
例2 echoは配列をarrayと出力する
例3 echoはカンマで区切って出力できる
例4 if (echo("hoge")) print("hoge");はパースエラー
例2 echoは配列をarrayと出力する
例3 echoはカンマで区切って出力できる
例4 if (echo("hoge")) print("hoge");はパースエラー
63nobodyさん
2008/12/11(木) 18:35:48ID:??? echo ってカンマ使えたの?
64nobodyさん
2008/12/11(木) 20:23:19ID:??? PHPに文句あるなら、言う相手は開発元のZendだろ?
ここでグダグダ言っても、Zendには声が届かない。
…と思ったが、参考になりました^^
ここでグダグダ言っても、Zendには声が届かない。
…と思ったが、参考になりました^^
65nobodyさん
2008/12/11(木) 20:52:34ID:??? zendって開発元だったの?
スポンサーじゃなかったっけ?
スポンサーじゃなかったっけ?
66nobodyさん
2008/12/11(木) 21:02:47ID:??? perlってオープンソースなの?
perlがオープンソースだから
PHPをカンタンに作れたの?
perlがオープンソースだから
PHPをカンタンに作れたの?
67nobodyさん
2008/12/11(木) 21:12:13ID:??? phpはCからできてますお
68nobodyさん
2008/12/12(金) 06:06:09ID:??? まぁ、PerlがPHPやJSPのようにHTMLソースのインラインで実行できたら、
まぁ、もっと初心者を取り込めたかもしれないねぇ。
まぁ、CPANの仕組みをもう少し落ち着いて考えたらよかったかもねぇ。
まぁ、そうならなくてよかったと思ってるPerlerは多いかもしれないけど、
まぁ、・・・
まぁ、もっと初心者を取り込めたかもしれないねぇ。
まぁ、CPANの仕組みをもう少し落ち着いて考えたらよかったかもねぇ。
まぁ、そうならなくてよかったと思ってるPerlerは多いかもしれないけど、
まぁ、・・・
69nobodyさん
2008/12/12(金) 11:23:10ID:??? なんか詳しい人が多そうなので、聞いてみたいことがある。
PHPって、存在しないプロパティに値を代入すると、その場でプロパティが生ま
れるよね?
php -r '$hoge = new stdClass; $hoge->fuga = "ふがふが\n"; echo $hoge->fuga;'
=> ふがふが
これってPHPマニュアルのどこに書いてあるの?
オーバーロードの説明は読んだ。__set()の説明はあったけど、__set()の中身
が何もないデフォルトの場合の挙動の説明は見つけられなかった。
おかげでずっと、新しいプロパティが生まれていることに気づかなかった。
PHPって、存在しないプロパティに値を代入すると、その場でプロパティが生ま
れるよね?
php -r '$hoge = new stdClass; $hoge->fuga = "ふがふが\n"; echo $hoge->fuga;'
=> ふがふが
これってPHPマニュアルのどこに書いてあるの?
オーバーロードの説明は読んだ。__set()の説明はあったけど、__set()の中身
が何もないデフォルトの場合の挙動の説明は見つけられなかった。
おかげでずっと、新しいプロパティが生まれていることに気づかなかった。
71nobodyさん
2008/12/12(金) 14:39:12ID:??? >>70
くだ質にはちょっと前に同じ質問がされてたんだよ。しかし回答はなかった。
たぶんPHPマニュアルには載ってないんだろう。
この辺の挙動を知っておかないとオーバーロードは理解できないのに、PHPマニュ
アルには載ってないんだとしたら、詳しい人たちはどうやってこれを知って理
解したのか聞きたいんだよ。
ちなみにPHPマニュアルのページ下のコメント欄みたいなところには載ってた。
しかしあそこはホントに玉石混交で、あそこにだけ載ってても意味ないだろ。
くだ質にはちょっと前に同じ質問がされてたんだよ。しかし回答はなかった。
たぶんPHPマニュアルには載ってないんだろう。
この辺の挙動を知っておかないとオーバーロードは理解できないのに、PHPマニュ
アルには載ってないんだとしたら、詳しい人たちはどうやってこれを知って理
解したのか聞きたいんだよ。
ちなみにPHPマニュアルのページ下のコメント欄みたいなところには載ってた。
しかしあそこはホントに玉石混交で、あそこにだけ載ってても意味ないだろ。
73nobodyさん
2008/12/12(金) 14:53:17ID:??? >>72
今見てみたら、前スレの470だった。
http://pc11.2ch.net/test/read.cgi/php/1226517332/470
いろいろやり取りしてたけど、結局PHPマニュアルの当該URLは出てない。
今見てみたら、前スレの470だった。
http://pc11.2ch.net/test/read.cgi/php/1226517332/470
いろいろやり取りしてたけど、結局PHPマニュアルの当該URLは出てない。
74nobodyさん
2008/12/12(金) 15:00:03ID:???75nobodyさん
2008/12/12(金) 15:15:12ID:???76nobodyさん
2008/12/12(金) 15:27:30ID:???77nobodyさん
2008/12/12(金) 15:44:48ID:??? >>76
おお、ありがとう。しかしこれ微妙に違うんじゃね?
これは
1.「未定義の変数をクラスとして扱うとstdClassのインスタンスになる」
ことの説明であって、
2.「任意のインスタンスは、未定義のプロパティをセットできる」
ことの説明じゃないだろ?
もちろん2.を前提として1.が説明されているわけだけど、2.そのものの説明は
どっかにないの?
おお、ありがとう。しかしこれ微妙に違うんじゃね?
これは
1.「未定義の変数をクラスとして扱うとstdClassのインスタンスになる」
ことの説明であって、
2.「任意のインスタンスは、未定義のプロパティをセットできる」
ことの説明じゃないだろ?
もちろん2.を前提として1.が説明されているわけだけど、2.そのものの説明は
どっかにないの?
78nobodyさん
2008/12/12(金) 15:46:13ID:??? 屁理屈こねるやつだな
79nobodyさん
2008/12/12(金) 15:52:28ID:??? 実際違うんだから仕方がない。
80nobodyさん
2008/12/12(金) 16:25:40ID:??? つうか、このオブジェクトの挙動について、元々知ってた人はどのくらいいる?
いるとしたら、どうやって知った?
これをPHPマニュアル読んで知った人って、一人でもいる?
いるとしたら、どうやって知った?
これをPHPマニュアル読んで知った人って、一人でもいる?
81nobodyさん
2008/12/13(土) 00:40:30ID:??? おお!勉強になります!もっとやれ!!!…いや、みんなで考えよう(・∀・)
82nobodyさん
2008/12/13(土) 06:10:54ID:??? 憶測:
PHPの由来はHTML文書中で簡単に<?php echo $hoge;?>するのが目的だったので、
変数は宣言せず、最初に代入等がおおなわれた時に作成される。
というのが基本仕様で、昔のマニュアルでは見かけたことがある。
これは、現在のマニュアルの「変数」のページにも
PHPでは変数を初期化する必要はないが、という控えめな表現で触れてある。
PHP4で導入されたクラス・オブジェクトでもそのことは変わらず、
メンバー変数の宣言はできるものの、実際のところ、代入によって
変数が育成されるという仕様に変更はなかった。
PHP5になって、public,protected,privateの区別を宣言できるようになったが、
宣言がない、もしくはvarで宣言された場合、PHP4互換となる。
また、PHP5ではクラス用のマジックメソッドが用意された。
これにより、宣言していないメンバー変数に対してオブジェクトからアクセスすると、
メンバー変数が作られるという"仕様"が結果的に発生する。
しかし、制御したい場合は__setでreturn null;なり例外を発生させることで、
宣言していないメンバー変数を使わせないというシステム仕様は実現できるので、
特に不自由することはない。
おもしろいのは、前者の仕様で運用すると、同じクラスから発生したオブジェクトなのに、
なのに、メンバー変数一覧に差異が生じ、get_object_varsでクエリを自動育成などを
やろうとすると、不具合の原因になるが、それは仕様の乱用と考えるのが妥当か。
ながーい、憶測ですんまそん。
PHPの由来はHTML文書中で簡単に<?php echo $hoge;?>するのが目的だったので、
変数は宣言せず、最初に代入等がおおなわれた時に作成される。
というのが基本仕様で、昔のマニュアルでは見かけたことがある。
これは、現在のマニュアルの「変数」のページにも
PHPでは変数を初期化する必要はないが、という控えめな表現で触れてある。
PHP4で導入されたクラス・オブジェクトでもそのことは変わらず、
メンバー変数の宣言はできるものの、実際のところ、代入によって
変数が育成されるという仕様に変更はなかった。
PHP5になって、public,protected,privateの区別を宣言できるようになったが、
宣言がない、もしくはvarで宣言された場合、PHP4互換となる。
また、PHP5ではクラス用のマジックメソッドが用意された。
これにより、宣言していないメンバー変数に対してオブジェクトからアクセスすると、
メンバー変数が作られるという"仕様"が結果的に発生する。
しかし、制御したい場合は__setでreturn null;なり例外を発生させることで、
宣言していないメンバー変数を使わせないというシステム仕様は実現できるので、
特に不自由することはない。
おもしろいのは、前者の仕様で運用すると、同じクラスから発生したオブジェクトなのに、
なのに、メンバー変数一覧に差異が生じ、get_object_varsでクエリを自動育成などを
やろうとすると、不具合の原因になるが、それは仕様の乱用と考えるのが妥当か。
ながーい、憶測ですんまそん。
83nobodyさん
2008/12/13(土) 09:49:00ID:??? >PHPの由来はHTML文書中で簡単に<?php echo $hoge;?>するのが目的だったので、
>変数は宣言せず、最初に代入等がおおなわれた時に作成される。
<?php echo $hoge;?>これのどこが代入なんだ?
>変数は宣言せず、最初に代入等がおおなわれた時に作成される。
<?php echo $hoge;?>これのどこが代入なんだ?
85nobodyさん
2008/12/13(土) 11:55:05ID:??? なんだこいつ
86nobodyさん
2008/12/13(土) 15:53:42ID:??? 変数宣言必須なコンパイラ環境でのリテラシーを持たないやつには、
インタプリタ環境での変数動的割り当てによる収穫について理解するのは難しい。
インタプリタ環境での変数動的割り当てによる収穫について理解するのは難しい。
87nobodyさん
2008/12/14(日) 02:27:01ID:??? みんなが使ってみたプログラミング言語は?
じゃあ、俺から。
C→Perl→Java→PHP→SQL→JavaScript→Excel VBA
次は、ActionScriptを勉強したいです。
じゃあ、俺から。
C→Perl→Java→PHP→SQL→JavaScript→Excel VBA
次は、ActionScriptを勉強したいです。
88nobodyさん
2008/12/14(日) 02:36:26ID:??? SQLってプログラミング言語なんだ
89nobodyさん
2008/12/14(日) 05:58:30ID:???90nobodyさん
2008/12/14(日) 11:49:11ID:??? >>88
プログラムは、「データ」とデータの「処理」から成り立っている。
一応SQLでも、処理(条件分岐とか)が書けるんだよね。
cf.日経ソフトウエア 2008年 03月号 p.55
分類/基礎となる計算モデル/事例
手続き型言語/チューリングマシン/C, Java
問い合わせ言語(非手続き型言語)/関係モデル/SQL
関数型言語(非手続き型言語)/ラムダ計算/Lisp, Haskell
論理型言語(非手続き型言語)/一階述語言語/Prolog
こういう知識って、学校の授業で勉強する場合は、計算科学やソフトウェア工学という科目で習うのかな?
プログラムは、「データ」とデータの「処理」から成り立っている。
一応SQLでも、処理(条件分岐とか)が書けるんだよね。
cf.日経ソフトウエア 2008年 03月号 p.55
分類/基礎となる計算モデル/事例
手続き型言語/チューリングマシン/C, Java
問い合わせ言語(非手続き型言語)/関係モデル/SQL
関数型言語(非手続き型言語)/ラムダ計算/Lisp, Haskell
論理型言語(非手続き型言語)/一階述語言語/Prolog
こういう知識って、学校の授業で勉強する場合は、計算科学やソフトウェア工学という科目で習うのかな?
91nobodyさん
2008/12/14(日) 11:58:38ID:??? そんなんプログラミングするなら中学生にだって基礎知識だろ
92nobodyさん
2008/12/14(日) 12:11:59ID:??? >>89
Javaはオブジェクト指向の教材として役立ちました!
…しょぼいアプレットが作れます><
ActionScript → Flash、Flex、AIRでWEBアプリを作る
広がる妄想(アイデア)が実現できれば、手段(プログラム言語)は何でもいいんだけど^^
Javaはオブジェクト指向の教材として役立ちました!
…しょぼいアプレットが作れます><
ActionScript → Flash、Flex、AIRでWEBアプリを作る
広がる妄想(アイデア)が実現できれば、手段(プログラム言語)は何でもいいんだけど^^
93nobodyさん
2008/12/14(日) 12:18:50ID:??? じゃphpで十分じゃん
94nobodyさん
2008/12/14(日) 12:21:13ID:??? 今の高校は「情報」という授業があるらしいね。
http://www.mext.go.jp/a_menu/shotou/zyouhou/main18_a2.htm
=このスレのネタみたいに、関数がどうとか熱く語り合っているのかな?
量子コンピューターの設計とか、プログラミング言語をデザインするとか、
スーパーハッカーみたいな中学生ばかりだったら、技術立国日本の未来は明るいwww
http://www.mext.go.jp/a_menu/shotou/zyouhou/main18_a2.htm
=このスレのネタみたいに、関数がどうとか熱く語り合っているのかな?
量子コンピューターの設計とか、プログラミング言語をデザインするとか、
スーパーハッカーみたいな中学生ばかりだったら、技術立国日本の未来は明るいwww
95nobodyさん
2008/12/14(日) 12:22:27ID:??? お前あほか。おっさん乙。
96nobodyさん
2008/12/14(日) 12:29:48ID:??? Simple is best.
簡単にできることを複雑にやる必要はない。
=WEBアプリなら、既存の資産を活かしてPerl、PHPで十分
簡単にできることを複雑にやる必要はない。
=WEBアプリなら、既存の資産を活かしてPerl、PHPで十分
97nobodyさん
2008/12/14(日) 12:40:36ID:??? C、アセンブラのおかげで、ハードの仕組みが理解できるようになった。
Javaのおかげで、オブジェクト指向の話が理解できるようになった。
WEBプログラミングのおかげで、サーバー、ネットワークの話が理解できるようになった。
<今後の課題>
1.デザインパターンのマスター
2.LISPやScheme等の関数型言語をマスター
3.将来実用化されるであろう量子コンピューターについて予習しておく
WEBアプリが自由自在に作れるようになったら、小遣い稼ぎのPHPは卒業だな!(・∀・)
Javaのおかげで、オブジェクト指向の話が理解できるようになった。
WEBプログラミングのおかげで、サーバー、ネットワークの話が理解できるようになった。
<今後の課題>
1.デザインパターンのマスター
2.LISPやScheme等の関数型言語をマスター
3.将来実用化されるであろう量子コンピューターについて予習しておく
WEBアプリが自由自在に作れるようになったら、小遣い稼ぎのPHPは卒業だな!(・∀・)
98nobodyさん
2008/12/14(日) 12:54:56ID:??? 量子コンピューターってプログラミング言語っていうレイヤーじゃないよな?
おれはPHPのかたわら、Haskellで遊んでみたけど、目から鱗。
PHPコードも洗練されてくるからおもしろい。
おれはPHPのかたわら、Haskellで遊んでみたけど、目から鱗。
PHPコードも洗練されてくるからおもしろい。
99nobodyさん
2008/12/14(日) 13:19:12ID:??? マスターとか言ってる奴がまともな技術と知識を持ってたためしがない
100nobodyさん
2008/12/14(日) 17:24:38ID:??? 他人の自分語りほどウザイものはないよね〜
101nobodyさん
2008/12/14(日) 22:02:13ID:??? 俺が最初に覚えた言語はHTML。
その中でも、<body>に関しちゃ、ネイティブ?って言われることがある
その中でも、<body>に関しちゃ、ネイティブ?って言われることがある
102nobodyさん
2008/12/14(日) 23:56:30ID:??? C>html>>>越えられない壁>>>php
103nobodyさん
2008/12/15(月) 17:36:09ID:??? このまま糞スレ化→dat落ちさせるのは惜しいな。
PHPの言語仕様について話し合える場所は少ない。
PHPの言語仕様について話し合える場所は少ない。
104nobodyさん
2008/12/15(月) 17:42:21ID:??? 安心していいよ、このスレは残る
消えるのはお前だけだから
消えるのはお前だけだから
105nobodyさん
2008/12/16(火) 22:48:52ID:??? HTMLは高級言語って話は聞いたことあるけどCSSって言語?
106nobodyさん
2008/12/16(火) 22:52:43ID:9RkOzYwl echoとprintは文字を出力することは同じなのに
なんで二つも同じことができるんですか?
なんで二つも同じことができるんですか?
107nobodyさん
2008/12/16(火) 22:58:39ID:??? PHPスレのテンプレ
108nobodyさん
2008/12/16(火) 23:02:16ID:??? テンプレの回答は求めてないですよ
109nobodyさん
2008/12/16(火) 23:10:00ID:??? じゃ何を求めてんの?
110nobodyさん
2008/12/16(火) 23:19:35ID:??? 力…!!!
111nobodyさん
2008/12/19(金) 21:04:10ID:??? CSSも、関数やらロジックを実装するようになってきたからなぁ。
叙事詩的定義もなにか新しいプログラミング言語のように感じる
叙事詩的定義もなにか新しいプログラミング言語のように感じる
112nobodyさん
2008/12/19(金) 21:38:10ID:??? >>111
CSSの関数ってのはググったら見つかったけど、
例)CSS//関数
http://suika.fam.cx/~wakaba/wiki/sw/n/CSS++%E9%96%A2%E6%95%B0
> 叙事詩的定義
ってのはぜんぜん見つからない。"epic(al) definition" でも該当なし。
詳細プリーズ。
CSSの関数ってのはググったら見つかったけど、
例)CSS//関数
http://suika.fam.cx/~wakaba/wiki/sw/n/CSS++%E9%96%A2%E6%95%B0
> 叙事詩的定義
ってのはぜんぜん見つからない。"epic(al) definition" でも該当なし。
詳細プリーズ。
113nobodyさん
2008/12/19(金) 22:09:17ID:??? 形容しただけだろ
日本語能力だいじょうぶか?
日本語能力だいじょうぶか?
114nobodyさん
2008/12/19(金) 22:39:27ID:??? で、形容するとどういう意味になるんだい?
115nobodyさん
2008/12/19(金) 22:45:24ID:??? 短文煽りは不快なだけで何も生み出さないからやめようぜ。
そのうち Kusakabe (void) みたいになっちまうぞ。
そのうち Kusakabe (void) みたいになっちまうぞ。
117nobodyさん
2008/12/19(金) 23:06:25ID:??? >>106 に遅レス。
なんで echo と print の二つがあるかというと、まあ以下の文書に解説がある
わけだけど、
FAQTs - Knowledge Base - View Entry - What is the difference between echo and print?
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
どうも読んでてまだるっこしい。
2番目とか、
「echo は文(statement)、printは式(expression)」
こう書いたら、ずっとスッキリすると思うんだが。
そういう専門用語を使いたくないのかもしれないが、statement やexpression
程度の簡単な概念すら避けて説明するのは間違っていると思う。
これは外部リンクだけど、PHPマニュアルは全体的にそんな印象。
なんで echo と print の二つがあるかというと、まあ以下の文書に解説がある
わけだけど、
FAQTs - Knowledge Base - View Entry - What is the difference between echo and print?
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
どうも読んでてまだるっこしい。
2番目とか、
「echo は文(statement)、printは式(expression)」
こう書いたら、ずっとスッキリすると思うんだが。
そういう専門用語を使いたくないのかもしれないが、statement やexpression
程度の簡単な概念すら避けて説明するのは間違っていると思う。
これは外部リンクだけど、PHPマニュアルは全体的にそんな印象。
118nobodyさん
2008/12/19(金) 23:08:40ID:??? 作った張本人たちもアバウトってことですね
120nobodyさん
2008/12/20(土) 10:04:15ID:??? 本家のMLに参加して質問するのが近道ですね
121nobodyさん
2008/12/20(土) 12:44:45ID:??? 英語ができたらなあ。自然言語を書くのはは難しい...。
122nobodyさん
2008/12/20(土) 12:46:50ID:??? プログラミングと英語はほとんど同じような気が・・・
123nobodyさん
2008/12/20(土) 12:55:36ID:??? |
|
|
J
|
|
J
124nobodyさん
2008/12/20(土) 12:56:40ID:??? そうかあ?自然言語は理詰めで書けないじゃないか。
文法だけ覚えても engrish.com に載るような英文しか書けない。
文法だけ覚えても engrish.com に載るような英文しか書けない。
125nobodyさん
2008/12/20(土) 13:28:24ID:??? PG言語も文法だけ覚えてもサンプルに載ってるような英文しか書けない。
126nobodyさん
2008/12/20(土) 13:33:18ID:??? if (i = no money) {you are ogottekureru me}else{you are keti}
127nobodyさん
2008/12/20(土) 15:55:32ID:??? まさか英語ができないやつとかいるの?
128nobodyさん
2008/12/20(土) 15:56:26ID:??? お前だけだろ
129nobodyさん
2008/12/20(土) 16:21:45ID:??? 俺は英語ができると思ったことはないな。
一応、片言で会話したり、英語のドキュメントも
英文サイトは普通に読めるから不自由はしないけど、
英語で恋愛はできんw
一応、片言で会話したり、英語のドキュメントも
英文サイトは普通に読めるから不自由はしないけど、
英語で恋愛はできんw
130nobodyさん
2008/12/20(土) 16:27:31ID:??? いや今話してるのは
メーリングリストに投稿するとか
その程度のレベルの話だから。
メーリングリストに投稿するとか
その程度のレベルの話だから。
132nobodyさん
2008/12/20(土) 16:45:53ID:??? どうやってMLに入会するのかもわからない
普通に申請するだけじゃだめみたいね
普通に申請するだけじゃだめみたいね
133nobodyさん
2008/12/20(土) 16:58:17ID:??? 入会の仕方書いてあるでしょ。
「英語」で(藁
「英語」で(藁
134nobodyさん
2008/12/20(土) 18:00:46ID:??? 英語がわからないから入会方法がわからないって捉えられないとかゆとりですか?
135nobodyさん
2008/12/21(日) 00:33:12ID:??? OK! well, let's talk in English here.
136nobodyさん
2008/12/21(日) 00:34:49ID:??? このスレを見ている人はこんなスレも見ています。(ver 0.20)
pixiv自前イラスト向上スレ part7 [CG]
【ショタ】3次専ショタスレ 10【女装・美少年】 [Download]
... what are you interested in ? (^^;
pixiv自前イラスト向上スレ part7 [CG]
【ショタ】3次専ショタスレ 10【女装・美少年】 [Download]
... what are you interested in ? (^^;
137nobodyさん
2008/12/21(日) 05:34:29ID:??? なんで学生時代に英語勉強しなかったの?
138nobodyさん
2008/12/21(日) 05:54:32ID:??? 俺はセンターで9割近くは取ったが、いまだに英語ができる気がしない。
All your base are belong to us - Wikipedia
http://ja.wikipedia.org/wiki/All_your_base_are_belong_to_us
これも解説を読まなきゃ分からんかった。
All your base are belong to us - Wikipedia
http://ja.wikipedia.org/wiki/All_your_base_are_belong_to_us
これも解説を読まなきゃ分からんかった。
139nobodyさん
2008/12/21(日) 05:58:34ID:??? 英語のオンラインゲームできれば
「英語できる」と認定していいと思う
「英語できる」と認定していいと思う
140nobodyさん
2008/12/22(月) 01:06:32ID:??? I try to write the comment on program code from yesterday.
It's cooooool!!! ;-p
It's cooooool!!! ;-p
141nobodyさん
2008/12/28(日) 21:22:18ID:??? 「phpできます!」なんて自信たっぷりに言われた時の恥ずかしさ - ドグマを探しに
http://d.hatena.ne.jp/crenlif/20081114/1226660315
> PHPのあれが駄目とかじゃなく、もし神様(何の?)が、今までのは無かった
> ことにしてPHPをどこでも3ヶ所直していいよっていったらどうするかっての
> を聞いてみたいです。
具体的な内容はリンク先を参照。この辺ほんとに直らんものかなあ。
http://d.hatena.ne.jp/crenlif/20081114/1226660315
> PHPのあれが駄目とかじゃなく、もし神様(何の?)が、今までのは無かった
> ことにしてPHPをどこでも3ヶ所直していいよっていったらどうするかっての
> を聞いてみたいです。
具体的な内容はリンク先を参照。この辺ほんとに直らんものかなあ。
142nobodyさん
2008/12/28(日) 21:25:58ID:??? 結局関数名と記法の話?
144nobodyさん
2008/12/28(日) 22:07:40ID:??? 別の話。
PHPでの内部変数の扱われ方 - PHP5のオブジェクトコピーでありがちな勘違い - PHPプロ!ニュース
http://www.phppro.jp/news/304
コピーオンライト - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%94%E3%83%BC%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%88
arrayはオブジェクトじゃないのでコピーオンライトは行われないかと思ったが、
実行時間を見ると、どうやらちゃんとコピーオンライトしているらしい。
~ $ time php -r '$a=range(0, 100000);'
0.069 secs
~ $ time php -r '$a=range(0, 100000); $b=$a;'
0.068 secs
~ $ time php -r '$a=range(0, 100000); $b=$a; $b[100]=0;'
0.117 secs
PHPでの内部変数の扱われ方 - PHP5のオブジェクトコピーでありがちな勘違い - PHPプロ!ニュース
http://www.phppro.jp/news/304
コピーオンライト - Wikipedia
http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%94%E3%83%BC%E3%82%AA%E3%83%B3%E3%83%A9%E3%82%A4%E3%83%88
arrayはオブジェクトじゃないのでコピーオンライトは行われないかと思ったが、
実行時間を見ると、どうやらちゃんとコピーオンライトしているらしい。
~ $ time php -r '$a=range(0, 100000);'
0.069 secs
~ $ time php -r '$a=range(0, 100000); $b=$a;'
0.068 secs
~ $ time php -r '$a=range(0, 100000); $b=$a; $b[100]=0;'
0.117 secs
146nobodyさん
2008/12/28(日) 22:17:57ID:??? $bの値を書き換えた後、実行時間が2倍近くになってるだろ。
148nobodyさん
2008/12/28(日) 22:44:54ID:??? 違う?
じゃあどうして $b の一部を書き換えると、実行時間がこんなに延びんの?
じゃあどうして $b の一部を書き換えると、実行時間がこんなに延びんの?
149nobodyさん
2008/12/28(日) 22:45:55ID:??? あ、環境書いてなかった。
~ $ php --version
PHP 5.2.6 (cli) (built: Sep 13 2008 11:13:29)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
~ $ php --version
PHP 5.2.6 (cli) (built: Sep 13 2008 11:13:29)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
150nobodyさん
2008/12/28(日) 22:55:23ID:??? つうかググればすぐ言及するページは見つかる。やっぱりcopy on write だ。
Big arrays in PHP
http://brian.moonspot.net/2007/02/28/big-arrays-in-php/
> If the array is static then you don't really have to assign it by
> reference, since in PHP 5 all (non-object) variables are
> copy-on-write. So as long as you don't change the value then a copy
> isn't made.
php.netにはどこに書いてあるのか分からん。バグレポートばかり引っかかる。
Big arrays in PHP
http://brian.moonspot.net/2007/02/28/big-arrays-in-php/
> If the array is static then you don't really have to assign it by
> reference, since in PHP 5 all (non-object) variables are
> copy-on-write. So as long as you don't change the value then a copy
> isn't made.
php.netにはどこに書いてあるのか分からん。バグレポートばかり引っかかる。
151nobodyさん
2008/12/28(日) 23:10:01ID:??? この辺の挙動はパフォーマンスに重大な影響を与えるのに、公式ドキュメント
には記述が見つからん。たぶん書いてないんだろう。
ライブラリの記述はそこそこだが言語仕様の記述は貧弱。こういうのがPHPの一
番直してほしいところだな。
には記述が見つからん。たぶん書いてないんだろう。
ライブラリの記述はそこそこだが言語仕様の記述は貧弱。こういうのがPHPの一
番直してほしいところだな。
153nobodyさん
2009/01/02(金) 03:08:35ID:??? Amazon.co.jp: はじめてのPHP言語プログラミング入門: 大垣 靖男: 本
http://www.amazon.co.jp/dp/4774122866
どうやらこの本がおすすめらしい。
PHPの言語仕様についてきちんと扱った本だという。
http://www.amazon.co.jp/dp/4774122866
どうやらこの本がおすすめらしい。
PHPの言語仕様についてきちんと扱った本だという。
154nobodyさん
2009/01/02(金) 03:27:16ID:??? 何時の本だよ
言語仕様そんならマニュアルで十分
言語仕様そんならマニュアルで十分
155nobodyさん
2009/01/02(金) 04:21:47ID:??? 大垣氏の名前は覚えておいて損はないよ。
156nobodyさん
2009/01/02(金) 04:29:37ID:??? なんで?
157nobodyさん
2009/01/02(金) 12:56:51ID:??? 印税欲しいから。
158nobodyさん
2009/01/02(金) 16:53:02ID:???,j;;;;;j,. ---一、 ` ―--‐、_ l;;;;;;
{;;;;;;ゝ T辷iフ i f'辷jァ !i;;;;;
ヾ;;;ハ ノ .::!lリ;;r゙ 在日の方々はかわいそうな強制連行の被害者
`Z;i 〈.,_..,. ノ;;;;;;;;>
,;ぇハ、 、_,.ー-、_',. ,f゙: Y;;f そんなふうに考えていた時期が
〜''戈ヽ `二´ r'´:::. `! 俺にもありました
159nobodyさん
2009/01/11(日) 18:25:25ID:??? 最近、個人的に面白いと思った言語仕様があるのだが、ここに書いてる時間が
ないし、書いても長くてウザがられそうなので、クイズにしてみる。
「PHP言語仕様・力試しクイズ」
$ php -r '$a=array(); $a["a"]= $a; var_dump($a);'
$ php -r '$a=array(); $a["a"]=&$a; var_dump($a);'
$ php -r '$a=new stdClass; $a->a= $a; var_dump($a);'
$ php -r '$a=new stdClass; $a->a=&$a; var_dump($a);'
(以下は PHP5(以上)でしか動かない)
$ php -r '$a=new stdClass; $a->a= clone $a; var_dump($a);'
$ php -r '$a=new ArrayObject(array()); $a["a"]= $a; var_dump($a);'
$ php -r '$a=new ArrayObject(array()); $a["a"]=&$a; var_dump($a);'
$ php -r '$a=new ArrayObject(array()); $a["a"]= clone $a; var_dump($a);'
Q1
これらのコードが、PHP4とPHP5で、それぞれどのような表示をするか、試して
みよう。自信のある人は試す前に予想してみよう。
Q2
>>144のリンク先の記事 http://www.phppro.jp/news/304 が正しいかどうか、
問題があるとしたらどこか、考えてみよう。
ないし、書いても長くてウザがられそうなので、クイズにしてみる。
「PHP言語仕様・力試しクイズ」
$ php -r '$a=array(); $a["a"]= $a; var_dump($a);'
$ php -r '$a=array(); $a["a"]=&$a; var_dump($a);'
$ php -r '$a=new stdClass; $a->a= $a; var_dump($a);'
$ php -r '$a=new stdClass; $a->a=&$a; var_dump($a);'
(以下は PHP5(以上)でしか動かない)
$ php -r '$a=new stdClass; $a->a= clone $a; var_dump($a);'
$ php -r '$a=new ArrayObject(array()); $a["a"]= $a; var_dump($a);'
$ php -r '$a=new ArrayObject(array()); $a["a"]=&$a; var_dump($a);'
$ php -r '$a=new ArrayObject(array()); $a["a"]= clone $a; var_dump($a);'
Q1
これらのコードが、PHP4とPHP5で、それぞれどのような表示をするか、試して
みよう。自信のある人は試す前に予想してみよう。
Q2
>>144のリンク先の記事 http://www.phppro.jp/news/304 が正しいかどうか、
問題があるとしたらどこか、考えてみよう。
161nobodyさん
2009/01/14(水) 18:06:09ID:??? 大垣センセがこんなとこくるわけないだろw
162nobodyさん
2009/01/14(水) 18:38:30ID:???163nobodyさん
2009/01/14(水) 18:53:26ID:??? つうか、PHPのリファレンスって、要するにインスタンスに別名をつけることで、
仕組み自体はきわめて単純なものなんだよな。他言語で一般に言われるリファ
レンスと似ても似つかないだけで(俺だったら「エイリアス」とか命名したと
思う)。
わかりにくいのは、なんでPHPはこんな、他言語にはない奇妙な仕組みを必要と
するかだ。PHPのリファレンスはいつ、どのようなときに必要なのか。それを理
解するには、PHPの変数と各種インスタンスの挙動を理解する必要がある。
>>159のクイズは、まさにその辺の問題を扱っている。まあちょっと再帰を絡ま
せてしまったんで分かりにくくなってしまったが、再帰は枝葉で、本題にした
いのはそっちだ。
仕組み自体はきわめて単純なものなんだよな。他言語で一般に言われるリファ
レンスと似ても似つかないだけで(俺だったら「エイリアス」とか命名したと
思う)。
わかりにくいのは、なんでPHPはこんな、他言語にはない奇妙な仕組みを必要と
するかだ。PHPのリファレンスはいつ、どのようなときに必要なのか。それを理
解するには、PHPの変数と各種インスタンスの挙動を理解する必要がある。
>>159のクイズは、まさにその辺の問題を扱っている。まあちょっと再帰を絡ま
せてしまったんで分かりにくくなってしまったが、再帰は枝葉で、本題にした
いのはそっちだ。
164nobodyさん
2009/01/14(水) 18:59:55ID:???165nobodyさん
2009/01/14(水) 19:05:36ID:??? 参照でおもしろいのは、引数を参照で受け取る関数で、
それがオブジェクトであることを期待してるのに、NULLだった場合とかに、
関数の中で何もしないのに、var_dumpすると再帰になるようなスクリプトで
別のメモリ領域にズレが生じるとか。
それがオブジェクトであることを期待してるのに、NULLだった場合とかに、
関数の中で何もしないのに、var_dumpすると再帰になるようなスクリプトで
別のメモリ領域にズレが生じるとか。
166nobodyさん
2009/01/14(水) 19:09:11ID:???167nobodyさん
2009/01/14(水) 19:13:09ID:??? 君見苦しいぞ
168nobodyさん
2009/01/14(水) 19:13:20ID:???171nobodyさん
2009/01/14(水) 22:04:23ID:??? 見苦しい人がちょっといたほうが盛り上がるよ
172nobodyさん
2009/01/14(水) 22:17:55ID:??? 盛り下がっちゃったわけだが
174nobodyさん
2009/02/08(日) 20:48:24ID:??? 緊急浮上あげ
175nobodyさん
2009/02/09(月) 02:15:47ID:??? 俺も大垣先生の本は分かりやすいと思った。
PHP6が出たら、改訂版の投入をお願いします!><
図書館で借りて読むけどw
PHP6が出たら、改訂版の投入をお願いします!><
図書館で借りて読むけどw
176nobodyさん
2009/02/09(月) 11:41:42ID:??? 本人乙
177nobodyさん
2009/02/09(月) 14:13:32ID:??? echo と print の厳密な違いを教えてください
178nobodyさん
2009/02/09(月) 14:46:33ID:??? void zend_do_print(znode *result, znode *arg TSRMLS_DC)
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->result.op_type = IS_TMP_VAR;
opline->result.u.var = get_temporary_variable(CG(active_op_array));
opline->opcode = ZEND_PRINT;
opline->op1 = *arg;
SET_UNUSED(opline->op2);
*result = opline->result;
}
void zend_do_echo(znode *arg TSRMLS_DC)
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_ECHO;
opline->op1 = *arg;
SET_UNUSED(opline->op2);
}
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->result.op_type = IS_TMP_VAR;
opline->result.u.var = get_temporary_variable(CG(active_op_array));
opline->opcode = ZEND_PRINT;
opline->op1 = *arg;
SET_UNUSED(opline->op2);
*result = opline->result;
}
void zend_do_echo(znode *arg TSRMLS_DC)
{
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_ECHO;
opline->op1 = *arg;
SET_UNUSED(opline->op2);
}
180nobodyさん
2009/02/09(月) 20:49:46ID:??? そうなるとprintなんて必要ないよな
配布スクリプトなんか覗くとprint使ってるやつがいるので不思議でたまらない
配布スクリプトなんか覗くとprint使ってるやつがいるので不思議でたまらない
181nobodyさん
2009/02/09(月) 21:10:42ID:??? printは成功すると1を返す。
echoは何も返さない。
echoは何も返さない。
182nobodyさん
2009/02/09(月) 23:30:44ID:??? $a=1;
$a ? echo 'aaa' : echo 'bbb'; //error
$a ? print 'aaa' : print 'bbb'; //ok
$a ? echo 'aaa' : echo 'bbb'; //error
$a ? print 'aaa' : print 'bbb'; //ok
183nobodyさん
2009/02/10(火) 05:47:16ID:??? 三項演算子の場合普通式の先頭から書かないか?
184nobodyさん
2009/02/10(火) 06:33:49ID:??? 一例ってことで
185nobodyさん
2009/03/18(水) 11:34:00ID:??? システムハンガリアンって評判悪いじゃん。
たしかにC++みたいに型が違う値を代入しようとしたら
速攻でエラー吐くコンパイラにかけるんなら意味ないかと思うけど、
PHPみたいに元の型が何であろうが無視して新しい型にしてくれちゃう言語は、
ひるがえって『単なる型名を変数名につける』ってのが有効じゃないかと思うんだ。
PHPにおいてはアプリケーションハンガリアンよりシステムハンガリアンのほうがいい気がしてる。
ハンガリアンに限らず、PHPの柔軟すぎる型変換に適した命名規約を考えてくれ。
たしかにC++みたいに型が違う値を代入しようとしたら
速攻でエラー吐くコンパイラにかけるんなら意味ないかと思うけど、
PHPみたいに元の型が何であろうが無視して新しい型にしてくれちゃう言語は、
ひるがえって『単なる型名を変数名につける』ってのが有効じゃないかと思うんだ。
PHPにおいてはアプリケーションハンガリアンよりシステムハンガリアンのほうがいい気がしてる。
ハンガリアンに限らず、PHPの柔軟すぎる型変換に適した命名規約を考えてくれ。
186nobodyさん
2009/03/18(水) 11:34:45ID:??? そもそも、ハンガリアンが嫌われているのは
変数に実際に入れる型がいろいろ変わるからなわけだが。
>>185はバグ回避のために違う型を入れないようにするためと
いっているのだと思うが、間違った型を入れるとか言う以前に
ソフトウェアの性質上、型は変わるものなんだよ。
(変数に最初に想定していた型以外のものを入れることになる)
時代の流れとともに16bit変数は32bit変数に変わるし、
32bitポインタは64bitポインタに変わるし、
オブジェクト指向言語なら、型は継承され新しい型になる。
PHPのような柔軟な言語だからこそ、なおさらハンガリアンは必要ない。
それにハンガリアン(変数の頭に型を入れる)を使うまでもなく
変数名そのものが型をあらわしている。flagならtrue/falseだし、priceなら数値だろう。
変数に実際に入れる型がいろいろ変わるからなわけだが。
>>185はバグ回避のために違う型を入れないようにするためと
いっているのだと思うが、間違った型を入れるとか言う以前に
ソフトウェアの性質上、型は変わるものなんだよ。
(変数に最初に想定していた型以外のものを入れることになる)
時代の流れとともに16bit変数は32bit変数に変わるし、
32bitポインタは64bitポインタに変わるし、
オブジェクト指向言語なら、型は継承され新しい型になる。
PHPのような柔軟な言語だからこそ、なおさらハンガリアンは必要ない。
それにハンガリアン(変数の頭に型を入れる)を使うまでもなく
変数名そのものが型をあらわしている。flagならtrue/falseだし、priceなら数値だろう。
187nobodyさん
2009/03/18(水) 11:35:28ID:???188nobodyさん
2009/03/18(水) 11:35:53ID:??? 常識の範囲内ならどうでもいい。
つまりは、priceがlongからItemPriceに変わるというように
型が変わることがあるってこった。
それは避けられないからハンガリアンはよくない。
つまりは、priceがlongからItemPriceに変わるというように
型が変わることがあるってこった。
それは避けられないからハンガリアンはよくない。
189nobodyさん
2009/03/18(水) 11:36:32ID:??? クラスでゲッターやセッター使ってれば
タイプヒンティングも使えるし、型よりも値の範囲を絞って
例外を飛ばせるから全く問題ない。
一度処理に入ったら長い処理が行われるのではなくて
1回毎のシンプルな処理をセッションやクッキー使ってどうにか
継続させるのがWebアプリだから、ユーザー側のデータは
1回毎に改変が無いか毎回チェックする事になるし、型があってもなくても関係ない。
タイプヒンティングも使えるし、型よりも値の範囲を絞って
例外を飛ばせるから全く問題ない。
一度処理に入ったら長い処理が行われるのではなくて
1回毎のシンプルな処理をセッションやクッキー使ってどうにか
継続させるのがWebアプリだから、ユーザー側のデータは
1回毎に改変が無いか毎回チェックする事になるし、型があってもなくても関係ない。
190nobodyさん
2009/03/18(水) 23:00:28ID:???192◇N.OaZ1nFN2
2009/11/03(火) 12:55:24ID:??? テスト
193nobodyさん
2011/04/22(金) 23:18:04.56ID:itzBhGqM Mono最強伝説
http://ja.wikipedia.org/wiki/XSP_(Web%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC)
http://ja.wikipedia.org/wiki/XSP_(Web%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC)
194nobodyさん
2011/05/13(金) 03:48:00.01ID:??? システムハンガリアン病だわ・・・
HTMLでさえも<span id="spanHoge">とか<input type="text" name="txtHoge">とか
しないと気が済まない_| ̄|○
HTMLでさえも<span id="spanHoge">とか<input type="text" name="txtHoge">とか
しないと気が済まない_| ̄|○
195nobodyさん
2011/05/13(金) 03:59:57.23ID:??? それハンガリアンの意義から逸脱してるよなw
196nobodyさん
2011/05/13(金) 23:21:15.36ID:nIBGPhUJ そう? 意義とは?
197nobodyさん
2011/05/13(金) 23:30:39.71ID:??? 俺が立てたクソスレがまだあるとは思わなかった
ROUND2はなさそうだな
199nobodyさん
2017/12/30(土) 14:35:43.67ID:YhlYw6jg 誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
L32JIAVAJE
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。
グーグル検索⇒『半藤のブブイウイウレレ』
L32JIAVAJE
200nobodyさん
2023/09/22(金) 00:03:53.38ID:??? ウム(メ▼▼)y-i_(・o・ ;)オヤブンドウゾ!!
レスを投稿する
ニュース
- 【W杯】韓国が大窮地 悪夢のシナリオ止まらず 決勝T進出順位ボーダーの8位に転落 セネガル、イランに抜かれる ★3 [尺アジ★]
- イラン、米軍基地を攻撃 [お断り★]
- 【サッカー】W杯の「日本VSブラジル」を他で例えると…Xで問いかけ話題「湘北vs山王」「明徳義塾vs大阪桐蔭」「ドトウvsオペラオー」★2 [o(^・-・^)o★]
- 【サッカー】「昔のネイマールでしょ」サッカー日本代表・塩貝健人がブラジル戦へ痛快発言…「王国」の印象を問われ [ゴアマガラ★]
- 【サッカー】「世紀の談合マッチになる予感」J組の一戦が話題…ドローで両チーム決勝T進出の“異例事態” [ゴアマガラ★]
- 【EV】 BYDの「快進撃」はインチキだった… 隠れ負債7兆円超 サプライヤーへの代金支払いを先延ばし ★2 [お断り★]
- 【実況】博衣こよりのえちえちパワプロWBC編🧪
- 経産省、アニメ会社MAPPAやゲーム会社DeNAに15億円の補助金。赤松健「ヒットした作品に後からお金をあげる政策が必要」 [485187932]
- 【高市解散】小野田担当大臣 記者だけでなく「司会者」にもキれ顔を見せていた X上ではバッシングの嵐に [169920436]
- お前ら「ラーメン二郎は汚い!食べない!」←これ
- ワイ雄、義理のおばあさんとセックスがしたい
- 【悲報】高市に逆らったカルビー、消費者の購入意向激減。湖池屋を下回る… [342017262]