PHP質問・雑談スレ 2【初心者お断り(ROM歓迎)】©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん 転載ダメ©2ch.net
2016/10/17(月) 21:44:12.59ID:???初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。
PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。
http://echo.2ch.net/tech/ (【PHP】で板内を検索)
前スレ
http://tamae.2ch.net/test/read.cgi/php/1461283091/
その他リンク
・PHPマニュアル
https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
http://ideone.com/
・プログラミングのお題スレ Part8 (求PHPer参戦)
http://echo.2ch.net/test/read.cgi/tech/1444216746/
このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
(FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼
このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
(HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
0755nobodyさん
2017/01/17(火) 21:32:55.35ID:???0756nobodyさん
2017/01/17(火) 21:37:26.37ID:???あーあれか。いつもすぐに消してたな。
>>751
別に誰か触るわけじゃないからユーザーパスなんて無くて良くないか
それよりもmysqlのユーザーとパスを本番環境に合わせておくといいぞ
rootでテストすると思わぬところでひっかかる、というかひかかった
0757nobodyさん
2017/01/17(火) 22:09:14.22ID:LeG/+lw1そうです。調べた所、なくなったみたいですね。
>>756
私も昔やっちまいました。
みなさんありがとうございます。
0758nobodyさん
2017/01/18(水) 10:03:47.04ID:p0EF6Ec+0759nobodyさん
2017/01/18(水) 23:47:21.59ID:wplrfJOQ普通は、 " ダブルクォーテーションでしょ?
0762nobodyさん
2017/01/19(木) 00:20:28.47ID:???シングルでも書けるが正解
普通はダブルだと思うならダブルを使えばいい
0763nobodyさん
2017/01/19(木) 00:22:12.50ID:???0764nobodyさん
2017/01/19(木) 00:24:08.99ID:HOa0/OpmPerl は嫌い
>>761 >>762
もともとC#から入ってる俺からすると生粋のPHPerが ' で文字列を括るのに
本当に嫌悪感を感じる。
また
if ( true ){
}
じゃなくて普通は
if( true )
{
}
じゃないか?
0765nobodyさん
2017/01/19(木) 00:28:38.25ID:???if ( true ){
}
functionはこう
function()
{
//foo
}
0766nobodyさん
2017/01/19(木) 00:30:46.07ID:???PHPはPerlからの影響もかなり強い
C#と違ってな
あとコーディング規約でしかないことを必要以上に押し付けるのは宗教の押し売りと変わらんぞ
0767nobodyさん
2017/01/19(木) 00:42:20.14ID:???コーディング規約なんてどうでもいいだろ
Javaの影響が強いEclipse使ってれば上になるし
C系の影響が強いVS使ってれば下になる
PHPもPEARコーディング規約は上でZendコーディング規約が下と分かれてるし
PHPerに人気のPhpStormも下だから下の書き方のやつは多い
0770nobodyさん
2017/01/19(木) 11:55:42.84ID:???0771nobodyさん
2017/01/19(木) 11:56:43.28ID:???0772nobodyさん
2017/01/19(木) 12:27:11.30ID:HOa0/OpmDBからデータを検索しようとしています。
例えば社員IDが 3,5,7
の3つを検索しようとした場合
PHPで文字列編集を行ってSQLを
EMPLOYEE_ID IN ( 3 , 5, 7)
と組み立てて実行してますが、もっとスムーズにやる方法はありませんか?
0774nobodyさん
2017/01/19(木) 14:50:03.82ID:???0775nobodyさん
2017/01/19(木) 15:27:39.67ID:HOa0/Opmあー、cakePHP使ってる時には確か検索した対象データを
配列に詰めて渡せば、内部的にINに組み込んでくれるっていう便利な機能があったはずなんだけど・・・・
プレーンなphpじゃないか。やっぱりFW使っておいた方が良かったかな。
0776nobodyさん
2017/01/19(木) 16:30:05.73ID:???> あー、cakePHP使ってる時には確か検索した対象データを
> 配列に詰めて渡せば、内部的にINに組み込んでくれるっていう便利な機能があったはずなんだけど・・・・
その程度、自分で実装しろよ
0777nobodyさん
2017/01/19(木) 18:29:18.38ID:???0778nobodyさん
2017/01/19(木) 19:46:23.77ID:???0779nobodyさん
2017/01/19(木) 20:17:56.32ID:???もっと伸びると思ってたんだけどなぁ
0781nobodyさん
2017/01/20(金) 02:52:58.31ID:???if( true )
{
}
じゃないか?
この時点で強そうじゃないのはわかるでしょう。どこの畑で育つとこうなるのか
0782nobodyさん
2017/01/20(金) 03:30:32.80ID:???0784nobodyさん
2017/01/20(金) 11:14:45.43ID:???http://php.net/manual/ja/functions.user-defined.php
phpマニュアルは以下のようになっている
if() {
}
function()
{
}
phpマニュアルに合わせているよ
functionはエディタで見やすくなるって聞いたけど、ifブロックがなぜこうなっているかはよくわからない
0785nobodyさん
2017/01/20(金) 13:07:11.97ID:???if() {
}
なってないでしょ
0787nobodyさん
2017/01/20(金) 14:25:18.33ID:???確認しやすいようにURLまで漬けてんだから見てくれよwwww
あとなってない場所を教えてくれ。修正しとくわ
0788nobodyさん
2017/01/20(金) 14:50:46.62ID:???0789nobodyさん
2017/01/20(金) 15:51:26.02ID:???http://php.net/manual/ja/function.curl-setopt.php
ここにデフォルトはあれあれ通常はこれこれと書いてあるものもあるけど
大半は記述がないのでどうしてくれようかと
0790nobodyさん
2017/01/20(金) 16:02:55.09ID:???コーディングスタイルはカーリーブレースの位置を決めるだけじゃないよ
>>783に対しては安価をつけてないでしょ。
同じ意味で、>>781を書いた。(これはもちろん >>764 の引用。)
0791nobodyさん
2017/01/20(金) 16:21:48.17ID:???0792nobodyさん
2017/01/20(金) 16:44:19.89ID:???0794nobodyさん
2017/01/20(金) 16:58:41.09ID:???0795nobodyさん
2017/01/20(金) 17:19:57.45ID:???・ちょっとググったけど情報が見当たらない
・コードは見られる
なら、コード見るのが最速だよな
0796nobodyさん
2017/01/20(金) 22:02:41.88ID:???が最速
0797nobodyさん
2017/01/21(土) 02:15:46.19ID:???https://github.com/php/php-src/blob/master/ext/curl/interface.c
これ読んでから
https://curl.haxx.se/libcurl/c/curl_easy_setopt.html
この辺を見る
0798nobodyさん
2017/01/21(土) 15:57:48.07ID:3TMSiFF1}
→と書く奴の低能率の高さは異常
if (true)
{
}
→と書く奴には有能な奴が多い。
0799nobodyさん
2017/01/21(土) 16:55:26.91ID:7J/ZXd+Hフラットデザインのほうが見やすいと思う方で
Opeta、Firefox、Chromeで拡張機能のStylish入れてる方は
気が向いたら使ってみてください
https://userstyles.org/styles/137945/flat-php-manuals-php
ソースが汚いので、他の方がカスタマイズしやすいように整理する予定です
0801nobodyさん
2017/01/21(土) 19:01:39.43ID:???オレはワンライナーだな。
0802nobodyさん
2017/01/21(土) 19:12:06.25ID:???読んでて陰鬱な気分になる
0805nobodyさん
2017/01/21(土) 21:42:16.74ID:???0806nobodyさん
2017/01/21(土) 22:35:26.24ID:???これでいいな。
ただ、一言いわせてほしい。
適当でも動く。それがこの言語の唯一の世界最高の部分を忘れないでほしい。
0807nobodyさん
2017/01/21(土) 22:43:09.24ID:???PHPで特筆すべきところはelseifのところじゃないか
elseifでもelse ifでもいい
0808nobodyさん
2017/01/21(土) 22:51:48.20ID:???0809nobodyさん
2017/01/21(土) 23:34:06.55ID:???if 〜〜〜 else
if 〜〜〜 ということだったような
結果生成されるアセンブラ的にジャンプ回数が後者のほうが多い=重いとか
0810nobodyさん
2017/01/22(日) 00:17:50.98ID:???}else{
この書き方でelseが窮屈なのと、
if()だと制御構造じゃなくて関数呼び出しみたいに感じるからだわ。
echo ""
print("");
の違いにも言えることだけど。
0811nobodyさん
2017/01/22(日) 00:18:49.55ID:???}
こう書けるのが一番なんだけどね。
0812nobodyさん
2017/01/22(日) 00:22:15.82ID:???ワンライナーにしよう
0813nobodyさん
2017/01/22(日) 08:01:35.50ID:???0814nobodyさん
2017/01/22(日) 08:24:32.05ID:???とか出来る日は来るのだろうか
0815nobodyさん
2017/01/22(日) 08:49:06.15ID:???それいいよね
あとtrueでもTRUEでも
boolean true扱いなのが良い
Cか何かは大文字だけだったはずで、
define TRUE true
かなにかを毎回入れてたな。めんどくさかった
0816nobodyさん
2017/01/22(日) 12:05:06.34ID:Bh2I+8hl0817nobodyさん
2017/01/22(日) 12:07:04.02ID:Bh2I+8hl{
}
という風な書き方をする奴はいけてる。自己紹介してみた。
0819nobodyさん
2017/01/22(日) 12:52:14.70ID:Bh2I+8hl可読性が高い
0820nobodyさん
2017/01/22(日) 13:02:10.82ID:???0822nobodyさん
2017/01/22(日) 13:08:26.34ID:???>>>とか>>だとEOFとの兼ね合いやビット演算の関係でダメなんだろうけど
:>これじゃダメなの =>や->よりは絶対書きやすいんだが
0823nobodyさん
2017/01/22(日) 13:14:23.08ID:???0824nobodyさん
2017/01/22(日) 15:10:18.11ID:???「POSTやGETのパラーメーターは必ずサニタイズしろ」
「改行、特殊文字のエスケープ、ヌル文字や/../排除」
「ホワイトリスト作って、適切なリクエスト以外ははじけ」
「アクセスできる場所に重要なものを置くな。置くなら.httpdや.htaccessではじけ」
「フォームを作るならワンタイムトークン」
これが原則よな
最低限これだけやってりゃだいたい大丈夫っぽいじゃん
0825nobodyさん
2017/01/22(日) 15:17:46.81ID:???ログイン機能が無ければ楽勝
極論ユーザーからの送信は
「ホワイトリスト作って、適切なリクエスト以外ははじけ」
これだけで何とかなる
でもログイン機能を作ると途端にセキュリティホールだらけになるゾ
楽しいゾ〜^^b
0826nobodyさん
2017/01/22(日) 15:59:59.37ID:???0827nobodyさん
2017/01/22(日) 18:51:35.53ID:???0829nobodyさん
2017/01/22(日) 19:18:37.65ID:???$array = [
MyClass::class => '...'
];
みたいなkeyの指定って大丈夫ですか?
0830nobodyさん
2017/01/22(日) 19:20:35.19ID:???0831nobodyさん
2017/01/22(日) 19:53:38.91ID:???0832nobodyさん
2017/01/22(日) 20:00:57.23ID:???これどうなってるの?
連想配列は分かるけど、staticなプロパティで$外してもエラー起こらないの?
Myclass::classで何でクラス名が返ってるの?
0833nobodyさん
2017/01/22(日) 20:24:38.89ID:???http://php.net/manual/ja/language.oop5.basic.php
0834nobodyさん
2017/01/22(日) 21:03:16.72ID:???ありがとう!
しかもこれclass定義しなくても使えたのね。ビックリ
::class
PHP 5.5 以降では、class キーワードでクラス名の解決ができるようになりました。 ClassName クラスの完全修飾名を文字列で取得するには、 ClassName::class とします。 これは、 名前空間つきのクラスと組み合わせると特に便利です。
0835nobodyさん
2017/01/22(日) 23:46:19.23ID:???0836nobodyさん
2017/01/23(月) 01:10:26.38ID:???0837nobodyさん
2017/01/23(月) 01:58:05.38ID:YCqPaICU0838nobodyさん
2017/01/23(月) 22:57:06.46ID:???だれか修正してちょ
http://php.net/manual/ja/regexp.reference.assertions.php
ここ
> (?<=\d{3}...(?<!999))foo
>は、999 でない 3 桁の数字とさらに 3 文字の後に続く "foo" にマッチするパターンです。
これおかしいなあと思って原文見たけど、やっぱり誤訳だった。
「3桁の数字と、999ではない3文字の後に続く"foo"」が正解ですね。
よろしくお願いしますー
0839nobodyさん
2017/01/23(月) 22:59:20.26ID:???マッチしない例
123999foo
abc123foo
マッチする例
123abcfoo
999abcfoo
こういうことです
よろしくおねがいしますー
0840nobodyさん
2017/01/23(月) 23:01:06.80ID:???メイン記事のフォントを太くしました
そのほうが見やすいと思ったので。
メイン記事のフォントの種類とトップのヘッダの色も変えられるようになりました
0841nobodyさん
2017/01/23(月) 23:44:22.72ID:???右上の edit
anonymous login
修正
保存
これぐらいは出来るようになっておいたほうが良いぞ
0843nobodyさん
2017/01/24(火) 11:57:54.39ID:???「すべてのファイル」ってのクリックすりゃいいのね
0844nobodyさん
2017/01/24(火) 12:19:47.00ID:???0845nobodyさん
2017/01/24(火) 14:07:46.91ID:???今そのバグが再現可能かどうかはわからないけど
0846nobodyさん
2017/01/24(火) 20:37:54.16ID:???0847nobodyさん
2017/01/24(火) 21:50:49.60ID:KZ0F5F3Wそれをネットでリアルタイム配信
仲間という人間に対する盗聴盗撮生ネット配信の会
しかけたカメラの映像
乗っ取っているPCの画像をリアルタイムで生配信中
集団で仲間の私生活を覗いて楽しんでいる
そんなことが今この国では行われています
仄めかしの隠語は
猫 穴 水 仲間
0848nobodyさん
2017/01/25(水) 13:25:36.75ID:???array(1,2,3), array(4,5,6), null, array(7,8,9), null,
array(10,11,12), array(13,14), array(15,16,17), array(18,19,29,2000)
);
これをnullを境にぶった切って始点・終点の目印をつけて
次レスのように変えたい
どうやるのが良いか、先生お願いします
泥臭いけどループごとに1つ前の要素を見て判断させるのが一番なんでしょうか
0849nobodyさん
2017/01/25(水) 13:27:52.99ID:???array(
'start'=>true, 'end'=>false,
'data'=>array(
array(1,2,3),
array(4,5,6)
)
),
array(
'start'=>false, 'end'=>false,
'data'=>array(
array(7,8,9)
)
),
array(
'start'=>false, 'end'=>true,
'data'=>array(
array(10,11,12),
array(13,14),
array(15,16,17),
array(18,19,29,2000)
)
),
);
わざわざ配列に組み直してるのは、互いに統合できない2つ以上の別々のところで
分割したものをもとに処理したいからです
0850nobodyさん
2017/01/25(水) 13:48:15.96ID:???>>849が目的じゃなくて手段なら、SplDoublyLinkedListを使うのがいい。
$list = new SplDoublyLinkedList();
$list->push(['abc', 'def']);
$list->push(['ghi']);
$list->push(['jkl', 'mno', 'pqr']);
print_r($list);
0851nobodyさん
2017/01/25(水) 13:57:58.30ID:TQsts9Pu$result = array(
array(
array(1,2,3),
array(4,5,6)
),
array(
array(7,8,9)
),
array(
array(10,11,12),
array(13,14),
array(15,16,17),
array(18,19,29,2000)
)
);
0852nobodyさん
2017/01/25(水) 14:02:31.89ID:???自分でもアレだとは思うんだけど、元の配列の最初([0])ではじまってる塊か、最後で終わる塊か、
に意味があるので手段じゃなく目的になるます
0853nobodyさん
2017/01/25(水) 15:03:00.65ID:???ちょっと意味がわからないんだが。
> 自分でもアレだとは思うんだけど、元の配列の最初([0])ではじまってる塊か、最後で終わる塊か、
> に意味があるので手段じゃなく目的になるます
目的=元の配列の最初の塊か最後で終わる塊かを知りたい
じゃないのか?
それを実現する手段が>>849のコードじゃないの?
0854nobodyさん
2017/01/25(水) 15:05:21.62ID:???Cはどうすればいい?
というようなことだったら、Bじゃなくて別手段がいいんじゃなないのというお話。
0855nobodyさん
2017/01/25(水) 15:30:59.78ID:???目的は最初に書いたように「nullを境にぶった切って始点・終点の目印をつけ」ることです
852で元の〜〜は手段じゃなく目的だと書いたのは、
始点・終点の目印を省く提案をされた>>850-851の方々に対して、いや必要なんですよ、と返す意図です
始端・終端の把握のためとはいえ、いかにもって感じのフラグ設定はどうかとも思ったのですが、
わかりやすさを優先してフラグ設定として書いてあります
アレだと思う、と書いた意図はこのようなことだったのですが今読み直すと意味不明ですね、すみません
854は申し訳ないけど意味がわかりません
■ このスレッドは過去ログ倉庫に格納されています