!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 12
https://mevius.5ch.net/test/read.cgi/tech/1619667579/
次スレは>>980以降
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
【PHP】下らねぇ質問はここに書き込みやがれ 13
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (アウアウクー MM6f-zbgo)
2021/09/09(木) 09:38:43.41ID:eDlF7Xc4M904デフォルトの名無しさん (アウアウウー Saa5-5Ix7)
2022/08/18(木) 17:47:23.42ID:E6+QXrSta なぜか日本人ってPHP好きだけど今更whileだとかsubstrなんとか書いてる場合じゃないやろ
905デフォルトの名無しさん (ワッチョイ 41b1-rg8k)
2022/08/19(金) 08:15:45.62ID:RKrUVLa60906デフォルトの名無しさん (オッペケ Srf1-Uo2u)
2022/08/19(金) 08:30:48.74ID:hrPa3YAYr Rubyの巣に帰れよ
907デフォルトの名無しさん (ブーイモ MM9f-t5P5)
2022/08/20(土) 01:01:14.29ID:BI8i3IHnM execute(値)にするのと、
bindvalueにいれてexecute()するのって違いありますか?
bindvalueにいれてexecute()するのって違いありますか?
908デフォルトの名無しさん (ワッチョイ ffa7-oOo3)
2022/08/20(土) 02:40:15.24ID:Pjxfd05Y0 マニュアル見れば書いてるけど
executeの引数でやる場合は全てPDO::PARAM_STRで処理されるってこと
executeの引数でやる場合は全てPDO::PARAM_STRで処理されるってこと
909デフォルトの名無しさん (ワッチョイ ff10-l4gh)
2022/08/21(日) 10:16:00.38ID:gazEjFW30 IFとFORさえ覚えれば、たいていのシステム作れるだろ
910デフォルトの名無しさん (ササクッテロラ Sp73-ymFH)
2022/08/21(日) 16:24:41.91ID:fxISK6jup911デフォルトの名無しさん (オイコラミネオ MM93-tEjH)
2022/08/21(日) 17:17:30.64ID:zciKMG28M goto文が無い言語はクソ
912デフォルトの名無しさん (スップ Sd9f-s6Gz)
2022/08/21(日) 18:58:33.34ID:mTMfTXcwd システムとは基本的に現実世界の出来事を仮想世界に移したものである
つまり人間の営みの大部分はifとforを表現出来る
俺らはifとforで生きている
つまり人間の営みの大部分はifとforを表現出来る
俺らはifとforで生きている
913デフォルトの名無しさん (ワッチョイ 9f02-RKJr)
2022/08/21(日) 19:49:49.96ID:/n0rYPAY0 時を基準に
垂直に分割するとif
平行に分割するとfor
垂直に分割するとif
平行に分割するとfor
914デフォルトの名無しさん (ワッチョイ 7f63-tEjH)
2022/08/21(日) 19:51:20.83ID:QgiBi/kL0 時を掛け算する少女
915デフォルトの名無しさん (ワッチョイ 9fac-VtnI)
2022/08/21(日) 19:51:36.61ID:YkHltzb10916デフォルトの名無しさん (ワッチョイ fff2-e7J+)
2022/08/21(日) 20:08:29.83ID:wl7qNZ2S0 gosubはくれ
917デフォルトの名無しさん (ワッチョイ 9f5f-UIZa)
2022/08/21(日) 22:27:16.72ID:eTjJkk/Q0 もし私が生きていたら死ぬまで生き続ける
918デフォルトの名無しさん (ブーイモ MMc3-nIF8)
2022/08/25(木) 08:10:25.83ID:cG++4RkZM プログラム初心者で、開発したはいいけどユニットテストってのをどうやればいいかわからない。PHPUnitってやつを勉強すればいいの?
919デフォルトの名無しさん (ワッチョイ 9f5f-O5Bg)
2022/08/25(木) 09:33:17.81ID:GV4MPWBa0 そうです
920デフォルトの名無しさん (ワッチョイ ffe7-oOo3)
2022/08/25(木) 11:10:01.39ID:heRMyD+r0 rubyにはTest::Unitというライブラリがある。
gem install test-unit で簡単にインストールできる
require 'test/unit'したら
Test::Unit::TestCaseを継承したクラスを作る。
testで始まるメッソドを作ってassertで結果を比べる。
PHPでユニットテストは難しい。
初心者にはほぼ不可能
初心者はRubyから学習を始めるべき。
そしてRubi on Railsを習得すればPHPは不要
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/
gem install test-unit で簡単にインストールできる
require 'test/unit'したら
Test::Unit::TestCaseを継承したクラスを作る。
testで始まるメッソドを作ってassertで結果を比べる。
PHPでユニットテストは難しい。
初心者にはほぼ不可能
初心者はRubyから学習を始めるべき。
そしてRubi on Railsを習得すればPHPは不要
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/
921デフォルトの名無しさん (ワッチョイ 7f63-tEjH)
2022/08/25(木) 11:13:28.18ID:iqB4j8J+0 今日もまだ生きてるぞ
922デフォルトの名無しさん (ブーイモ MM4f-nIF8)
2022/08/25(木) 14:49:04.19ID:hXEJOwJJM ライブラリ便利そうだけど、今更rubyに変えられないからphpで頑張るわ
923デフォルトの名無しさん (JP 0H33-O5Bg)
2022/08/25(木) 15:32:48.32ID:GV4MPWBaH PHPでもLaravelとか使えば同じでは?
924デフォルトの名無しさん (JP 0Hd3-Vr/7)
2022/08/25(木) 16:50:21.79ID:WIenj4cIH Laravel使えないサーバーもまだ多いのが問題なのかも
925デフォルトの名無しさん (ワッチョイ 7f63-tEjH)
2022/08/25(木) 16:54:20.42ID:iqB4j8J+0 昭和十年十二月十日に
ぼくは不完全な死体として生まれ
何十年かかゝって
完全な死体となるのである
ぼくは不完全な死体として生まれ
何十年かかゝって
完全な死体となるのである
926デフォルトの名無しさん (JP 0H33-O5Bg)
2022/08/25(木) 18:51:47.54ID:GV4MPWBaH Laravel使えないならRailsも使えんだろうしなぁ
ユニットテスト云々以前の問題のような
ユニットテスト云々以前の問題のような
927デフォルトの名無しさん (ワッチョイ 9f5f-UIZa)
2022/08/25(木) 20:03:05.12ID:BRCxE1d+0 wordpressに対応しないでください…
928デフォルトの名無しさん (ワッチョイ 9f01-dbST)
2022/08/26(金) 06:38:37.45ID:MROGQRE10 2022/2/3
2022-02-03
スラッシュ形式保存されてる内閣府の祝日CSVですが、
桁揃えてハイフン形式になおしたいです。
どうすればいいですか?
2022-02-03
スラッシュ形式保存されてる内閣府の祝日CSVですが、
桁揃えてハイフン形式になおしたいです。
どうすればいいですか?
929デフォルトの名無しさん (ワッチョイ 9f01-dbST)
2022/08/26(金) 07:24:25.37ID:MROGQRE10 >>928
自決
自決
930デフォルトの名無しさん (ワッチョイ 7f47-tEjH)
2022/08/26(金) 11:55:44.04ID:a/x93rb70 >>928
vsprintf('%d-%02d-%02d', explode('/', '2022/2/3'))
vsprintf('%d-%02d-%02d', explode('/', '2022/2/3'))
931デフォルトの名無しさん (ワッチョイ 7fda-oOo3)
2022/08/26(金) 13:17:02.67ID:4wt+rugM0 >>930
vsprintfのマニュアルの戻り値の説明に
「 format に基づき、 フォーマットされた文字列の配列を返します。 」とありますが「文字列の配列」という意味がわかりません。
戻り値は文字列で配列ではないように思うのですが違うのでしょうか?
https://www.php.net/manual/ja/function.vsprintf.php#refsect1-function.vsprintf-returnvalues
vsprintfのマニュアルの戻り値の説明に
「 format に基づき、 フォーマットされた文字列の配列を返します。 」とありますが「文字列の配列」という意味がわかりません。
戻り値は文字列で配列ではないように思うのですが違うのでしょうか?
https://www.php.net/manual/ja/function.vsprintf.php#refsect1-function.vsprintf-returnvalues
932デフォルトの名無しさん (ワッチョイ 9f02-RKJr)
2022/08/26(金) 13:26:19.15ID:b66GPlrN0 内部で文字列から配列に変換してからフォーマットする
型がない言語(型推論)だから戻り値を使うまでは配列
型がない言語(型推論)だから戻り値を使うまでは配列
933デフォルトの名無しさん (ワッチョイ 7f47-tEjH)
2022/08/26(金) 14:10:02.84ID:a/x93rb70 >>931
その日本語、英語版( ttps://www.php.net/manual/en/function.vsprintf.php )原文の
> Return array values as a formatted string according to format.
から「values」に相当する部分が抜けてるような気が。抜けてなくてもなんかよく分からん表現だが
まぁ気になるんなら、戻り値が「フォーマット済みの日付文字列」「formatted date string」と明示されてる
DateTime::createFromFormat('Y/m/d', '2022/2/3')->format('Y-m-d')
を使ってみるとか
その日本語、英語版( ttps://www.php.net/manual/en/function.vsprintf.php )原文の
> Return array values as a formatted string according to format.
から「values」に相当する部分が抜けてるような気が。抜けてなくてもなんかよく分からん表現だが
まぁ気になるんなら、戻り値が「フォーマット済みの日付文字列」「formatted date string」と明示されてる
DateTime::createFromFormat('Y/m/d', '2022/2/3')->format('Y-m-d')
を使ってみるとか
934デフォルトの名無しさん (ワッチョイ 7fda-oOo3)
2022/08/26(金) 16:07:35.09ID:4wt+rugM0 Return array values as a formatted string according to format.
DeepLで翻訳したら
配列の値をformatにしたがって整形した文字列として返す。
となりました。多分これが正解だと思います。
英語版のマニュアルの見出しにも
vsprintf
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
vsprintf — Return a formatted string
とあるのでやはり戻り値はフォーマットされた文字列でおkですよね?
DeepLで翻訳したら
配列の値をformatにしたがって整形した文字列として返す。
となりました。多分これが正解だと思います。
英語版のマニュアルの見出しにも
vsprintf
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
vsprintf — Return a formatted string
とあるのでやはり戻り値はフォーマットされた文字列でおkですよね?
935デフォルトの名無しさん (ワッチョイ 7f47-tEjH)
2022/08/26(金) 17:35:03.11ID:a/x93rb70 「ですよね」と言われても、マニュアルに書いてある以上の情報なんて持ってないしな
てか、なんで試さないの? var_dump()してstringが返ってくるかどうか、30秒で確認できるっしょ
てか、なんで試さないの? var_dump()してstringが返ってくるかどうか、30秒で確認できるっしょ
936デフォルトの名無しさん (ワッチョイ 7f1f-oOo3)
2022/08/26(金) 17:52:53.92ID:8DGxFkjA0 >>935
そんなのとっくにやってますよ。
マニュアルがおかしいんじゃないかっていう意味で聞いたんですけどね。
ソースに当たってみました。
やはり返り値は文字列ですね。
https://github.com/php/php-src/blob/23e6856e41cb7e8e29c3824ad53b26c0a57f4da0/ext/standard/formatted_print.c
そんなのとっくにやってますよ。
マニュアルがおかしいんじゃないかっていう意味で聞いたんですけどね。
ソースに当たってみました。
やはり返り値は文字列ですね。
https://github.com/php/php-src/blob/23e6856e41cb7e8e29c3824ad53b26c0a57f4da0/ext/standard/formatted_print.c
937デフォルトの名無しさん (ワッチョイ ffbb-MAx6)
2022/08/26(金) 18:34:59.55ID:AOSBa6FO0 なんでそんな誤訳(?)したんだろうね
確認お疲れさまでした
マニュアルはGitHub管理のはずなのでPR出しておくと修正されるよ
確認お疲れさまでした
マニュアルはGitHub管理のはずなのでPR出しておくと修正されるよ
938デフォルトの名無しさん (ベーイモ MM8f-7ygK)
2022/08/26(金) 19:00:30.76ID:aLr+AxJ9M このスレ、>>934から「文字列で返ることは確認済み、問題にしてるのはマニュア
ルの記述だ」と読み取らないと質問者様のお怒りを招くのか。レベル高いな
ルの記述だ」と読み取らないと質問者様のお怒りを招くのか。レベル高いな
939デフォルトの名無しさん (ワッチョイ 7f63-tEjH)
2022/08/26(金) 19:15:45.56ID:S8Vleaqc0 我らは試されているのだ
940デフォルトの名無しさん (ワッチョイ 9fb0-oOo3)
2022/08/26(金) 20:02:27.99ID:8ESD7+yH0941デフォルトの名無しさん (ワッチョイ 9f01-oOo3)
2022/08/26(金) 20:09:08.43ID:27BJw2950 PHPのドキュメントは翻訳だから間違いがあるのはしょうがない。
その点Rubyは開発者が日本人だから日本語ドキュメントも完璧。
初心者がドキュメントの正誤判断することは不可能
初心者はRubyから学習を始めるべき。
そしてRubi on Railsを習得すればPHPは不要
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/
その点Rubyは開発者が日本人だから日本語ドキュメントも完璧。
初心者がドキュメントの正誤判断することは不可能
初心者はRubyから学習を始めるべき。
そしてRubi on Railsを習得すればPHPは不要
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/
942デフォルトの名無しさん (ワッチョイ 9f02-RKJr)
2022/08/26(金) 20:25:26.88ID:b66GPlrN0943デフォルトの名無しさん (ワッチョイ eebb-I0L/)
2022/08/27(土) 05:59:08.06ID:fRqWQAA00944デフォルトの名無しさん (ワッチョイ 2102-f2QG)
2022/08/27(土) 07:25:49.03ID:jzDPthdr0 ドット演算子、アロー演算子を作った人なので
今はコア開発者ではありませんよ
今はコア開発者ではありませんよ
945デフォルトの名無しさん (ワッチョイ eebb-I0L/)
2022/08/27(土) 07:51:30.13ID:fRqWQAA00 てことはレジェンドじゃないですか!
Andi さん?Zeev さん?
まさかの Rasmus さん?
Andi さん?Zeev さん?
まさかの Rasmus さん?
946デフォルトの名無しさん (ワッチョイ 2102-f2QG)
2022/08/27(土) 10:53:28.68ID:jzDPthdr0 誰を名乗っても問題ありませんので誰でも良いですが
まあ、完全なアホというのは良くないですよ
というか、アホは完全でないからアホですよね
つまり私はある種完全性を肯定されました
ありがとうございます
まあ、完全なアホというのは良くないですよ
というか、アホは完全でないからアホですよね
つまり私はある種完全性を肯定されました
ありがとうございます
947デフォルトの名無しさん (ワッチョイ b1ac-C0nc)
2022/08/27(土) 16:24:36.45ID:4Qb5g2XJ0 夏休みだなあ
948十円玉 ◆ZzHmfXMmRApz (ワッチョイ ae35-HUXm)
2022/08/31(水) 02:14:29.44ID:NHfTTCA80 知らんうちにPOSIX系関数の返り値が多次元化されてたのね。preg_matchとか。
949デフォルトの名無しさん (ワッチョイ 6e10-fFoX)
2022/08/31(水) 13:21:22.49ID:RpICLcti0 WordPressの管理画面にログインもしていないのに
サイト更新が完了しましたメールが届きます。
これってどういう仕組みで実現してるんですか?
Cronで実行用のファイルを動作させないと無理ですよね?
サイト更新が完了しましたメールが届きます。
これってどういう仕組みで実現してるんですか?
Cronで実行用のファイルを動作させないと無理ですよね?
950デフォルトの名無しさん (ワッチョイ c95f-WaMk)
2022/08/31(水) 13:26:41.54ID:0bu00RjS0 別にcronじゃなくてもいい
誰かがサイトにアクセスしたらサイト更新チェックのトリガーが発動とかでもできる
誰かがサイトにアクセスしたらサイト更新チェックのトリガーが発動とかでもできる
951デフォルトの名無しさん (ワッチョイ 0263-yNcK)
2022/08/31(水) 14:56:28.92ID:2/ZssPvh0 Cronで、何が変更されたか全体を調べて通知するよりも
変更をトリガーにして通知を送らせる方が、多分軽い
変更をトリガーにして通知を送らせる方が、多分軽い
952デフォルトの名無しさん (ワッチョイ 6e10-fFoX)
2022/08/31(水) 21:04:09.52ID:RpICLcti0953デフォルトの名無しさん (ワッチョイ c95f-WaMk)
2022/08/31(水) 22:37:17.82ID:0bu00RjS0 >>952
PHPでも非同期処理できるし、遅延はほとんどなしにできるでしょ
PHPでも非同期処理できるし、遅延はほとんどなしにできるでしょ
954デフォルトの名無しさん (ワッチョイ 3d02-Ickp)
2022/08/31(水) 23:07:38.07ID:frCvHqxU0 スレ違いのクソレスしか能がない御方には難しすぎるな…
955デフォルトの名無しさん (ワッチョイ 0263-yNcK)
2022/08/31(水) 23:14:07.18ID:2/ZssPvh0 悪意のあるひっかけだったんだ
956デフォルトの名無しさん (ワッチョイ 6e10-fFoX)
2022/09/01(木) 08:27:02.20ID:5Hoki9RX0 >>953
つまり、考え方としては
1)WordPressの公開画面に誰かがアクセスする
2)Ajaxなどで非同期処理して更新チェック
3)更新する必要がある場合は、自動更新
って仕様なんですかね?
であるならば、WordPress以外のPHPアプリでもできそうですね
つまり、考え方としては
1)WordPressの公開画面に誰かがアクセスする
2)Ajaxなどで非同期処理して更新チェック
3)更新する必要がある場合は、自動更新
って仕様なんですかね?
であるならば、WordPress以外のPHPアプリでもできそうですね
957デフォルトの名無しさん (ワッチョイ c95f-WaMk)
2022/09/01(木) 10:56:30.21ID:z98R98W20958デフォルトの名無しさん (ワッチョイ 6e10-fFoX)
2022/09/01(木) 22:43:07.28ID:5Hoki9RX0 >>957
わかりました。調べてみます。ありがとうございました。
わかりました。調べてみます。ありがとうございました。
959デフォルトの名無しさん (ワッチョイ b1ac-C0nc)
2022/09/02(金) 00:01:20.44ID:tq/iSZ/+0 いえいえ
960デフォルトの名無しさん (ワッチョイ eaa9-Mjbb)
2022/09/10(土) 15:24:58.45ID:3OR0LZqv0 pdoとプリアドステートメントというのをやってみたのですが
$stmt = $pdo->prepare("クエリ文");
$stmt->bindValue(・・・)
$stmt->execute();
ここでDBにアクセスしていると思いますが、
行数を数える $stmt->fetchColumn()
や
foreach ($stmt->fetchAll() as $row) {
を使う時はDBにアクセスしているのでしょうか?
一旦 $result = $stmt->execute();
みたいに結果を変数に入れてから
$result->fetchColumn()
$result->fetchAll()
のような使い方をすればいいのでしょうか?
$stmt = $pdo->prepare("クエリ文");
$stmt->bindValue(・・・)
$stmt->execute();
ここでDBにアクセスしていると思いますが、
行数を数える $stmt->fetchColumn()
や
foreach ($stmt->fetchAll() as $row) {
を使う時はDBにアクセスしているのでしょうか?
一旦 $result = $stmt->execute();
みたいに結果を変数に入れてから
$result->fetchColumn()
$result->fetchAll()
のような使い方をすればいいのでしょうか?
961デフォルトの名無しさん (ワッチョイ e6bb-VPVD)
2022/09/10(土) 20:11:18.23ID:MysCJx+R0 PDOStatement::execute() の戻り値は成否を表すboolなので
$result = $stmt->execute();
は結果セットの取り出しとは無関係です
:execute()されるとPDOStatement:に結果セットがセットされます
fetch~は結果セットから取り出すメソッドなのでDBアクセスは伴いません
マニュアルを読んで実験してみるよ良いですよ
$result = $stmt->execute();
は結果セットの取り出しとは無関係です
:execute()されるとPDOStatement:に結果セットがセットされます
fetch~は結果セットから取り出すメソッドなのでDBアクセスは伴いません
マニュアルを読んで実験してみるよ良いですよ
962デフォルトの名無しさん (ワッチョイ ea51-AnFa)
2022/09/12(月) 12:44:00.88ID:PWuvGxZT0 Symfonyってもう最近使われないですか?
10年前にSymfonyで作られたWebアプリの保守の案件があるのですが
10年前にSymfonyで作られたWebアプリの保守の案件があるのですが
963デフォルトの名無しさん (ワッチョイ e6bb-VPVD)
2022/09/12(月) 12:51:41.95ID:S31S8+BV0 少しは調べろ
964デフォルトの名無しさん (ワッチョイ ea51-AnFa)
2022/09/12(月) 13:07:20.58ID:PWuvGxZT0965デフォルトの名無しさん (ワッチョイ e6bb-VPVD)
2022/09/12(月) 13:17:36.74ID:S31S8+BV0 wikipedia やそこから辿れる公式すら見てねぇじゃねぇか
エンジニアになりたかったらまずは公式読めるようになれ
エンジニアになりたかったらまずは公式読めるようになれ
966デフォルトの名無しさん (ワッチョイ eaa9-Mjbb)
2022/09/12(月) 14:21:38.34ID:Ynnd8wx/0 >>961
アロー演算子というのに全く慣れていなくて
$stmt->bindValue(・・・)
$stmt->execute();
->を使うと$stmtというのが上書きされていく感じでしょうか?
昔は手続き型を使っていたので
$resultに結果を入れて、あれこれやっていましたが
この -> が変数に代入することなく使えるのが不思議な感じです
もう少しマニュアル読んでみます
https://www.php.net/manual/ja/pdo.prepared-statements.php
アロー演算子というのに全く慣れていなくて
$stmt->bindValue(・・・)
$stmt->execute();
->を使うと$stmtというのが上書きされていく感じでしょうか?
昔は手続き型を使っていたので
$resultに結果を入れて、あれこれやっていましたが
この -> が変数に代入することなく使えるのが不思議な感じです
もう少しマニュアル読んでみます
https://www.php.net/manual/ja/pdo.prepared-statements.php
967デフォルトの名無しさん (ワッチョイ a902-+Wio)
2022/09/12(月) 23:14:41.96ID:H6EQTEjA0 なんで.じゃダメだったのかなぁ…
中途半端にPerl構文引き継いだせいで面倒なことに…
中途半端にPerl構文引き継いだせいで面倒なことに…
968デフォルトの名無しさん (ワッチョイ 1e66-JoGj)
2022/09/13(火) 01:04:23.23ID:k/lRopxK0 文字列の連結に使ってるからでしょ。
文字変数と、文字列を返す関数、この2つの項の文字列としての連結と区分けが付かなくなるじゃん。
インスタンス自体も文字列評価可能なんだし。
文字変数と、文字列を返す関数、この2つの項の文字列としての連結と区分けが付かなくなるじゃん。
インスタンス自体も文字列評価可能なんだし。
969デフォルトの名無しさん (ワッチョイ 157b-hFL5)
2022/09/13(火) 01:45:06.58ID:d4v/1ArY0970デフォルトの名無しさん (ワッチョイ 1e66-JoGj)
2022/09/13(火) 03:02:48.59ID:k/lRopxK0 アローもドットも:: も全部C++由来では。
C++自体別から引用してるだろけど、
3つか揃い踏みしたトップランクな有名言語はC++だろう。
ポインタ経由、実態経由、クラス経由で記述を分けた。
結局分けないPythonやC#みたいな言語の方が書きやすいという...
C++自体別から引用してるだろけど、
3つか揃い踏みしたトップランクな有名言語はC++だろう。
ポインタ経由、実態経由、クラス経由で記述を分けた。
結局分けないPythonやC#みたいな言語の方が書きやすいという...
971デフォルトの名無しさん (ワッチョイ 157b-hFL5)
2022/09/13(火) 08:20:07.32ID:d4v/1ArY0 >>970
お前がまるで分かってない事だけは分かった
お前がまるで分かってない事だけは分かった
972デフォルトの名無しさん (ワッチョイ 1e66-OVjx)
2022/09/13(火) 11:25:42.23ID:k/lRopxK0 どっか間違ってるの?
973デフォルトの名無しさん (ワッチョイ ea63-OdF3)
2022/09/13(火) 11:44:23.05ID:1xD6R/mV0 ドット演算子はCobolの頃からある
974デフォルトの名無しさん (ワッチョイ 66f2-JkEp)
2022/09/13(火) 11:46:51.82ID:Gwjyu6tY0 変数型宣言がない言語で+で文字連結できちゃうとバグの温床になる
975デフォルトの名無しさん (ワッチョイ 1e66-OVjx)
2022/09/13(火) 11:48:10.80ID:k/lRopxK0 だから、個々は別から引用したかもしれんが、
3つ揃い踏みしたトップランクメジャー言語はと書いてるじゃないか。
3つ揃い踏みしたトップランクメジャー言語はと書いてるじゃないか。
976デフォルトの名無しさん (ワッチョイ ea63-OdF3)
2022/09/13(火) 11:49:48.73ID:1xD6R/mV0 あ、ごめん
間違いだ
間違いだ
977デフォルトの名無しさん (ワッチョイ 157b-hFL5)
2022/09/13(火) 12:58:34.49ID:d4v/1ArY0978デフォルトの名無しさん (ワイーワ2 FF92-pw5f)
2022/09/13(火) 13:58:56.46ID:CtcsooHUF テンプレートリテラル{}使うか.による文字列結合使うかの判断がちゃんと出来ない
今の所ラクな方選んでるだけだな
今の所ラクな方選んでるだけだな
979デフォルトの名無しさん (ワッチョイ 7702-okD4)
2022/09/17(土) 18:54:08.82ID:X8JZx5Pn0 それでいいわ。強いて言うならエスケープしないで済む方
980デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/19(月) 12:37:28.97ID:TYV9CYn40 PHPの学習で、トランザクション勉強していますが。
おおざっぱに、「一連のクエリ処理を一つの処理と見立てて、途中失敗したら最初からなかったことにする」
機能かと思います。
で、課題として、簡単なECサイト作っています。
一般の利用者が商品を選択しカートを入れ、お金を払って買い上げるのようなものです。
テーブルは「カート」「商品情報」「利用者」「在庫情報」です。(ほんとは英字です。)
利用者が購入に失敗したら、ロールバックで購入が無かったことにします。
ここで、一連のクエリ処理というのは、「商品を選びカートに入れる」というところから始まるのでしょうか?
「商品を選びカートに入れる」という行為と、「カートにある商品を買う」という行為を
わけて、「カートにある商品を買う」について、トランザクションを設定するものでしょうか?
すいません。意味とおりますかね。。よろしくお願いします。
おおざっぱに、「一連のクエリ処理を一つの処理と見立てて、途中失敗したら最初からなかったことにする」
機能かと思います。
で、課題として、簡単なECサイト作っています。
一般の利用者が商品を選択しカートを入れ、お金を払って買い上げるのようなものです。
テーブルは「カート」「商品情報」「利用者」「在庫情報」です。(ほんとは英字です。)
利用者が購入に失敗したら、ロールバックで購入が無かったことにします。
ここで、一連のクエリ処理というのは、「商品を選びカートに入れる」というところから始まるのでしょうか?
「商品を選びカートに入れる」という行為と、「カートにある商品を買う」という行為を
わけて、「カートにある商品を買う」について、トランザクションを設定するものでしょうか?
すいません。意味とおりますかね。。よろしくお願いします。
981デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/19(月) 13:12:25.33ID:9xLKPVoG0 単に最後の購入処理で途中でエラーが発生して整合性が取れない時に
ロールバックするぐらいのイメージで良いのでは?
途中のカートに追加するような処理はそれ単体で失敗すればロールバックかなと
(この場合、カートに追加する処理に失敗したという事でカートは前のまま)
ロールバックするぐらいのイメージで良いのでは?
途中のカートに追加するような処理はそれ単体で失敗すればロールバックかなと
(この場合、カートに追加する処理に失敗したという事でカートは前のまま)
982デフォルトの名無しさん (スップ Sd3f-Zv9H)
2022/09/19(月) 13:18:10.02ID:k2Lhsy4nd カートに入れるところからトランザクション始めたら買われるまで一連の処理終われないし、途中でタイムアウトするやろw
983デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/19(月) 13:19:16.24ID:zeLiCYh20 カートに入れる処理はトランザクション二する必要がない
利用者が自分の意志で取り消すケースもあるわけだし
必要なのは、利用者が決定ボタンを押して、購入完了になるプロセスくらいじゃないかな
一つしかない商品を他の利用者と競合して購入したかもしれないし
複数種類を購入した際に、一つが在庫不足になってたかもしれない
そういうときに、決定ボタンを押す直前までロールバックが必要になる
利用者が自分の意志で取り消すケースもあるわけだし
必要なのは、利用者が決定ボタンを押して、購入完了になるプロセスくらいじゃないかな
一つしかない商品を他の利用者と競合して購入したかもしれないし
複数種類を購入した際に、一つが在庫不足になってたかもしれない
そういうときに、決定ボタンを押す直前までロールバックが必要になる
984デフォルトの名無しさん (ワッチョイ ffbb-AZvI)
2022/09/19(月) 14:16:17.85ID:8Jf173KW0 トランザクションとかセッションとかは文脈で定義される範囲が変わるのでちゃんと意識して書いたほうがいい
その上で、今回はDBのトランザクションのことだとエスパーして回答すると設定される範囲は間違い
記述がないので何をトランザクション処理として設定するかは回答できないけど、「ユーザの決済処理」「在庫処理」あたりがひとまとまりになると思う
入門書で記述されるトランザクションとついでにプリペアドステートメント(プレースホルダ)処理はデータベース側の処理なので入門書から離れてデータベース側の処理をデータベースの公式を参照しながら学習すると良い
その上で、今回はDBのトランザクションのことだとエスパーして回答すると設定される範囲は間違い
記述がないので何をトランザクション処理として設定するかは回答できないけど、「ユーザの決済処理」「在庫処理」あたりがひとまとまりになると思う
入門書で記述されるトランザクションとついでにプリペアドステートメント(プレースホルダ)処理はデータベース側の処理なので入門書から離れてデータベース側の処理をデータベースの公式を参照しながら学習すると良い
985デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/19(月) 16:01:50.25ID:TYV9CYn40 みなさんありがとうございました。
良くわかりました!
良くわかりました!
986デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 00:39:07.48ID:Sb2Kpzh+0 phpmyadmin にINT型でUNSIGNED(整数マイナスを除く)に設定したカラムがあります。
直接phpmyadmin上でこのカラムのデータに対して、SQL文でマイナスの値をUPDATEしようとすると
以下のようなアラートが返ってきます。ただし、データは0の値になります。
Warning: #1264 Out of range value for column 'test_int' at row 7
phpから、PDO接続で同じようにUPDATEしたとき、エラーとさせて入力を拒否したいのですが方法がありますでしょうか?
try-catch文で、以下のようにしたものの、ただ値が0になるだけしかなりませんでした。
良いアイデアがあれば教えてください。
$a =-100;
try {
$ps = $db->prepare("UPDATE tb2 SET test_int = :a WHERE nam = 'タヌキ'");
$ps->bindParam(":a", $a);
$ps->execute();
echo "UPDATE成功";
}
catch (RangeException $e){
echo "UPDATE失敗";
}
直接phpmyadmin上でこのカラムのデータに対して、SQL文でマイナスの値をUPDATEしようとすると
以下のようなアラートが返ってきます。ただし、データは0の値になります。
Warning: #1264 Out of range value for column 'test_int' at row 7
phpから、PDO接続で同じようにUPDATEしたとき、エラーとさせて入力を拒否したいのですが方法がありますでしょうか?
try-catch文で、以下のようにしたものの、ただ値が0になるだけしかなりませんでした。
良いアイデアがあれば教えてください。
$a =-100;
try {
$ps = $db->prepare("UPDATE tb2 SET test_int = :a WHERE nam = 'タヌキ'");
$ps->bindParam(":a", $a);
$ps->execute();
echo "UPDATE成功";
}
catch (RangeException $e){
echo "UPDATE失敗";
}
987デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 09:09:20.54ID:Sk0Tcp2N0 UPDATE以前二範囲チェックをPHPで行えば?
988デフォルトの名無しさん (ワッチョイ ffbb-AZvI)
2022/09/20(火) 09:18:10.74ID:fhvmpEXe0 試してないけどMySQL側に警告じゃなくてエラーを返すモードがあるみたい
https://dev.mysql.com/doc/refman/8.0/ja/sql-mode.html
TRADITIONAL を有効にすることでエラーを返すようになるみたい
https://dev.mysql.com/doc/refman/8.0/ja/sql-mode.html
TRADITIONAL を有効にすることでエラーを返すようになるみたい
989デフォルトの名無しさん (ワッチョイ 9701-jQT+)
2022/09/20(火) 12:21:17.30ID:F74Rs01Q0 事前チェックが嫌な理由はなんだろ
990デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/20(火) 15:40:51.68ID:r8LO5qc30 普通はバリデーションをしてSQLでエラーにならない値を設定するかなと
SQLでのエラーは想定外の事が起きた場合に限る感じ
SQLでのエラーは想定外の事が起きた場合に限る感じ
991デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 15:44:19.38ID:Sb2Kpzh+0 ありがとうございます。
事前チェックが良いですね。ありがとうございます。
データベースからのエラーを拾いたいのは、
トランザクションのコミットかロールバックの判断を
try-catchで補足しないといけないかと、
勝手に思っていたからです。
(多くの参考書がtry-catch文で判断していたから)
でも、処理毎にエラー文を配列に格納して、
最後の処理の後に、配列の内容の有無を確認して、
トランザクションの判断をすればいいですね。
事前チェックが良いですね。ありがとうございます。
データベースからのエラーを拾いたいのは、
トランザクションのコミットかロールバックの判断を
try-catchで補足しないといけないかと、
勝手に思っていたからです。
(多くの参考書がtry-catch文で判断していたから)
でも、処理毎にエラー文を配列に格納して、
最後の処理の後に、配列の内容の有無を確認して、
トランザクションの判断をすればいいですね。
992デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 15:59:12.72ID:Sk0Tcp2N0 トランザクション処理でその様なエラーを拾わせるって
まずくね?
たぶん、クライアントから受け取ったデータだと思うし、
それって単独で許容値かどうかを判断出来ると思うんだよ
Web画面経由なら、クライアント画面にエラー表示させて
再入力を促せると思うんだ
そうすればどう言うエラーか判断する必要もないよね
まずくね?
たぶん、クライアントから受け取ったデータだと思うし、
それって単独で許容値かどうかを判断出来ると思うんだよ
Web画面経由なら、クライアント画面にエラー表示させて
再入力を促せると思うんだ
そうすればどう言うエラーか判断する必要もないよね
993デフォルトの名無しさん (ワッチョイ 9f7c-E+l9)
2022/09/20(火) 15:59:16.45ID:r8LO5qc30 バリデーション
問題があればここでエラーを返し下の処理はしない
try{
トランザクション開始
SQL実行
コミット
}catch(Exception e) {
ロールバック
DBでエラーが発生した事を返す
}
正常終了
問題があればここでエラーを返し下の処理はしない
try{
トランザクション開始
SQL実行
コミット
}catch(Exception e) {
ロールバック
DBでエラーが発生した事を返す
}
正常終了
994デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 16:20:00.83ID:Sb2Kpzh+0 入力の例外値などは、
トランザクションで判別させるようなものじゃない。
ってことですか?
トランザクションで判別させるようなものじゃない。
ってことですか?
995デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 16:27:13.11ID:Sb2Kpzh+0 トランザクションの判別は、何か想定外の問題が起きた時であって、
想定されるような問題は事前になんとかしとけということかな。
想定されるような問題は事前になんとかしとけということかな。
996デフォルトの名無しさん (ワッチョイ 9f63-E+l9)
2022/09/20(火) 16:33:06.67ID:Sk0Tcp2N0 トランザクションで判定しないと行けないのは、
リソースの取り合いがあるときやDB自身の障害など
DB側でしか分からないようなケースだな
リソースの取り合いがあるときやDB自身の障害など
DB側でしか分からないようなケースだな
997デフォルトの名無しさん (ワッチョイ ff97-W3aP)
2022/09/20(火) 16:36:01.02ID:Sb2Kpzh+0 ありがとうございます。
ということは、トランザクションは、
try-catch文で例外判断するのが一般的なのですね。
ということは、トランザクションは、
try-catch文で例外判断するのが一般的なのですね。
998デフォルトの名無しさん (ワッチョイ 97da-E+l9)
2022/09/20(火) 23:33:16.97ID:k4MHQr8J0 クラスのファイル名の拡張子に .inc を使うのは
今の時代では許されてないの?
許されるなら .inc を使い続けたい
今の時代では許されてないの?
許されるなら .inc を使い続けたい
999デフォルトの名無しさん (ワッチョイ 9fb7-ldZd)
2022/09/21(水) 00:13:56.09ID:9N/hP2WI0 次スレ立ってた
【PHP】下らねぇ質問はここに書き込みやがれ 14
https://mevius.5ch.net/test/read.cgi/tech/1663659983/
>>998
まずはPSR-0や4を調べてもらって、その上でincにしたいと言うなら
個人の趣味開発くらいなら自由にしたら良いと思う
【PHP】下らねぇ質問はここに書き込みやがれ 14
https://mevius.5ch.net/test/read.cgi/tech/1663659983/
>>998
まずはPSR-0や4を調べてもらって、その上でincにしたいと言うなら
個人の趣味開発くらいなら自由にしたら良いと思う
1000デフォルトの名無しさん (ワッチョイ 97da-E+l9)
2022/09/21(水) 13:48:44.07ID:kTmMqKR0010011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 377日 4時間 10分 1秒
新しいスレッドを立ててください。
life time: 377日 4時間 10分 1秒
レス数が1000を超えています。これ以上書き込みはできません。
