電子書籍の厳選無料作品が豊富!

プログラム初心者です

貧弱レンタルサーバーを使っています。メモリを節約したいのですがダブルクォーテーションからシングルクォーテーションに変更したいです。
シングルクォーテーションを使って値を受け取ると何か制約うけることはありますか?
※postなどは配列で受け取ることもあります

$_COOKIE['id']
$_POST['sure_id']
$_REQUEST['page']
$_SESSION['id']

よろしくお願いします

A 回答 (2件)

「ダブルクオートよりもシングルクオートの方が速い」と言い張る人がちらほら居ますが、全くの事実無根です。

全ては変数展開の回数で決まりますし、「シングルクオートリテラルを文字列結合演算子で結合する」よりも「ダブルクオートリテラル内で変数展開する」ほうがごく僅かですがパフォーマンスもよくなります。

Disproving the Single Quotes Performance Myth
http://nikic.github.io/2012/01/09/Disproving-the …

で・・・「何が貧弱」なのかがはっきり分かっていないとだめで・・・おそらく【メモリ不足】ではなく【CPUスペック不足】なんじゃないですかね。そういった場合には、例えば(極端にサイズの大きい配列や画像リソースなどを除き)「unset() で変数をその都度解放していく」などやってしまうと全くの逆効果です。メモリが枯渇しているのでもなければ単なるオーバーヘッド増加につながるだけです。

実行コードキャッシュは結構効果ありそうなので試してみてください。といっても、共用レンタルサーバーであれば導入が厳しいと思いますが…

PHP のパフォーマンスチューニング
http://www.goofoo.jp/2012/01/1768

PHPコード最適化Tipsのウソと本当(解説)
http://d.hatena.ne.jp/koto2/20080524/1211684383

↑こっちには若干疑わしい事柄も混じってますのでご注意を。

>> 03. echo '文','字'; (カンマ区切り)の方が、'文'.'字' (ドット連結)より速い。

友人が以前気になって検証していましたが、その時のベンチマーク順は

echo "${foo}${bar}";
echo "{$foo}{$bar}";
echo "$foo$bar";
echo $foo . $bar;
echo $foo, $bar;

のようにむしろ一番遅い結果となっていました。output_bufferingの設定が関係している可能性もありますが、いずれにせよ気にするような箇所ではないと思います。最初に決めたコーディング規約に従うべきです。

>> 16. 処理が終わったらデータベースの接続は切っておこう。

"処理" の後に続くHTMLレンダリングのコストが少ない場合、これを行ってもそれほど効果は期待できません。

>> 11. strtr(str_replace の4倍速い) > str_replace > preg_replace の順に速い。

strtrは2つの使い方がありますが、どちらを使うかによって大きくパフォーマンスが変動する関数です。具体的には

strtr(引数を3つ取る使い方) > str_replace > strtr(引数を2つ取る使い方) > preg_replace

のようになるでしょう。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
そうだったんですか。あまり効果なさそうですね
文字列結合は参考になりました。気をつけます

お礼日時:2014/02/13 15:19

> メモリを節約したいのですがダブルクォーテーションからシングルクォーテーションに変更したいです



目的に対して、手段があってません。
ダブルからシングルにしても、変化しないか、せいぜい誤差の範囲です。
いくら貧弱サーバーでも、この程度では効果は期待できません。
    • good
    • 0
この回答へのお礼

体感できるものではないんですね
回答ありがとうございました

お礼日時:2014/02/13 15:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!