• ベストアンサー

$a[x]と$a['x']

連想配列の$a[x]と$a['x']の書式のどちらかにメリットはありますか?

  • PHP
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
noname#31077
noname#31077
回答No.2

先に結論を言うと、定数宣言 define して x を使うほうが便利です。 xを定数定義しているとき… $a[x] = "data1"; $b[x] = "data2"; としていて、x の定数部分を変えたいと思ったときは define の部分だけ修正すればいい事になります。 メリット:拡張性/保守性に富む。 デメリット:定数宣言はきちんと定数文字を考えないといけない。(x だけだなんてもってのほかですよ。)      :定数は管理しないといけない。 'x'としているとき… $a['x'] = "data1"; $b['x'] = "data2"; x という文字列を変えたいときは'x'の部分すべてを変更しないといけないです。 沢山使っていたら結構めんどくさいし間違えるリスクがある作業となります。 メリット:安易にコードが書ける。 デメリット:拡張性/保守性に劣る。      :修正の場合のリスクがある。 以上です。一つのクラス内、一つのスクリプトファイルだけの場合は 'x' の方が使い勝手がいいですが、 そうでないならきちんと定数宣言する事をお勧めします。

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

メリットというよりxが定数でないなら$a[x]という書き方は間違いです。 Notice エラーになります。 $a['x'] = 'x'; $a['y'] = 'y'; echo $a[x]; define ('x', 'y'); echo $a[x]; で比較してみてください。

関連するQ&A

  • PHP $a[1] の訳し方をお願いします

    $a[]="キー省略0番";// 配列$a[0]に文字列を代入せよ。 $a[]="キー省略1番";// 配列$a[1]に文字列を代入せよ。 $a[]="キー省略2番";// 配列$a[2]に文字列を代入せよ。 print $a[2];// 配列$a[2]の要素を表示せよ。 意味を右に書きましたが、配列$a[0] を要素 と呼んで宜しいのでしょうか?値 もしくは 内容 としたほうがよいのでしょうか?(意味です。)

    • ベストアンサー
    • PHP
  • a^2x-4-1<a^x+1-a^x-5の考え方について。

    a^2x-4-1<a^x+1-a^x-5の考え方について。 解答は両辺にa^5を掛けて、(a*a^x+1)(a^x-a^5)<0としているのですが、 どのようにしてこのような考えに至ることができるのでしょうか? 色々と掛けて試すのですか、それともパターンなのでしょうか。 着眼点などあれば教えて下さい。

  • aは実数としてP(x)=x3+(a-1)x2-(a+2)x-6a+8と

    aは実数としてP(x)=x3+(a-1)x2-(a+2)x-6a+8とする。 x-3で割ったとき余りは20。 P(x)=0はaの値は関係なく x=-2の解をもつ。 だから因数分解すると P(x)=(x+2){x2+(a-3)x-3a+4}となる。 また、P(x)=0の解がすべての実数となるaの値の範囲は a≦-7またはa≧1である。 ここまでは問題が解けたのですが、このとき、異なる実数解の個数がちょうど2個となるようなaの値の求め方がわかりません。 どうか解説よろしくお願いします。

  • a≦x≦a+3 におけるxの関数 f(x)=x^2 -6x +2a の

    a≦x≦a+3 におけるxの関数 f(x)=x^2 -6x +2a の最小値の求め方。 この問題の解き方がよくわからないので、とりあえず因数分解をして… f(x)=x^2 -6x +2a =(x-3)^2 +2a -9 ここまで求めました。 この後の求め方と正答を教えてください。

  • F(X)=X2-2(a+1)X+a2解き方

    分からないので教えてください。お願いします。 aを定数とし、F(X)=X2-2(a+1)X+a2-1とする。1≦x≦2における関数F(X)の最大値をM(a)とするとき、M(a)=6となるようなaの値を求めよ。   

  • x^2-A<0について

    x^2-A<0 を因数分解してみると (x-√A)(x+√A)<0 であり これが0より小さいんだから答えは -√A<x<√A ですよね? ここで今度は因数分解をしないでxを出してみると x^2<A x<±√A となり答えが x<√A,x<-√A となります、もうお分かりかと思うんですが これはなぜこうなるとお考えになりますか?

  • a^x = 10^(2x+1)

    問題) Solve each of the following equations to find x in terms of a where a >0 and a ≠100. a^x = 10^(2x+1) 答え)1/(log a - 2) 私の途中計算 → log a^x = log 10^(2x+1) → x log a = (2x+1)log 10  ここから記号が二つ(aとx)あるので どうしたらいいのかわかりません。 考え方を教えて頂けますか?

  • x^x=a

    x^x=a(x>0,a>0,aは実数)とした時、このxについての方程式って解けるのでしょうか?ふと思いついて調べてみたのですが、いまいちわからず質問させていただきました。

  • a^x=>xについて

    a^x=>xが、任意の正の実数について成り立つようなaの値の範囲を求めなさいという問題があるのですが、よくわかりません。a=x^(1/x)まで求めて、エクセルに入れると1.44224957ぐらいが上限になるのはわかるのですが…。だれかわかりませんか?

  • 0<x<1 -(1) │x-a│<2 -(2) とする。

    0<x<1 -(1) │x-a│<2 -(2) とする。 (1)を満たすどのようなxについても(2)が満たされるとき、実数aの値の範囲を求めよ。 また、(1)を満たすあるxについて(2)が満たされるとき、実数aの値の範囲を求めよ。 宿題なのですが、わからなくて困っています。 答えは、それぞれ-1≦a≦2,-2<a<3です。 解説をおねがいします。 これは国語の問題ですが、問題の意味もあまりよくわかりません(:_;) よろしくおねがいします。

専門家に質問してみよう