🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

957閲覧

php連想配列について考え方がわかりません

kenken1104

総合スコア7

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2019/12/01 23:49

お世話になります。
連想配列のコードの考え方?がわかりません。

$配列名=array('キー名'=>'値1',…);

という公式?ですが、

('キー名'='値1',…);

ではダメなんですか。
そういう決まりとして覚えた方がいいのでしょうか。
「そのキー名の値1です」はイコールではないということでしょうか。

ご返答お待ちしております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

記号の意味と結びつけて考える、という考え自体を捨てることってできないですかね?

「そういうもの」と考えられなければ、先に進めないと思います。

どうしてもその考え方は受け入れられない、という場合には、自分で言語を作れば良いと思いますよ。

投稿2019/12/02 00:00

takepan1973

総合スコア821

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenken1104

2019/12/02 00:13

ありがとうございます。 応用できるように考え方を知っておこうと思ったのですが、 それ自体が間違っているということですよね。
maisumakun

2019/12/02 01:57 編集

> 応用できるように考え方を知っておこうと思ったのですが、 文法は(自分で言語を作る、あるいは言語自体の改良に参画するのでない限り)所与のものです。プログラムを書く側では「利用」できるだけで、「応用」する余地はありません。
kenken1104

2019/12/02 05:32

初心者的な考え方で申し訳ないのですが、 arrayって関数はどういうシステムを作る時に使うんだろうっていう考え方は間違えでしょうか。 例えば日本語には同じ言葉でもいろんな意味があって、それをコンピューターに理解させようと思った時にどういう記号使えばよかったかな? と思い出す時にイコールじゃなくて=>だったわ! って記憶を引き出す時にその記号の意味を理解していた方が、 頭の悪い僕にとっては便利な言語になるので教えていただきたかっただけです。
takepan1973

2019/12/02 05:36

まず、arrayは関数じゃないです。
maisumakun

2019/12/02 05:43

> イコールじゃなくて=>だったわ!って記憶を引き出す時に このレベルのものが「記憶を引き出す」ではついていけません。反射的に出るぐらいになっている必要があります。
guest

0

ベストアンサー

そういう決まりとして覚えた方がいいのでしょうか。

はい。

「そのキー名の値1です」はイコールではないということでしょうか。

多くのプログラミング言語における=は代入であって、
数学で言うところのイコールとは別物です。
今回のケースだと、
もし'キー名'='値1'としてしまうと、キー名に値1を代入するという意味になってしまい、連想配列が破綻します

投稿2019/12/01 23:58

tanat

総合スコア18727

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenken1104

2019/12/02 00:13

ありがとうございます。 代入という知識が抜けてました。
guest

0

そういう決まりです。
=では代入になってしまいますしね。
ダメもなにもPHPの仕様です。
プログラムは書いた通りにしか動きません。

投稿2019/12/01 23:56

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenken1104

2019/12/02 00:14

ありがというございます。 そのように覚えます
guest

0

余談
言語の仕様は仕様として理解する必要がありますが、仕様が気にくわない場合、自身で「改善コード」を提供して採用してもらうって手はあります。

色々採用されるまでのハードルはありますが、例えば

php

1$配列名=array('キー名'=>'値1',);

としかかけなかった連想配列の記述が

php

1$配列名=['キー名'=>'値1',];

と、別の表現で記述できるようになった例もあります。

今は

php

1$配列名=array('キー名'='値1',);

は SyntaxError だったと思うので、文法的には入り込む余地がありますw

投稿2019/12/02 02:16

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2019/12/02 02:20

JSON形式の方がまだ違和感ないですね。
kenken1104

2019/12/02 05:29

よくわからないのですが、丁寧な回答嬉しいです。 ありがとうございます。
m.ts10806

2019/12/02 05:39

わかってからお礼言われたほうがアウトプットした方としては嬉しいのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問