質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

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

Q&A

解決済

1回答

4452閲覧

PHP初学者です。エラーが解決できません。よろしくお願いします。

MR112358

総合スコア1

PHP

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

0グッド

1クリップ

投稿2021/09/08 15:28

前提・実現したいこと

PHPを使用したメールフォームを作成しています。

発生している問題・エラーメッセージ

エラーの内容が理解できない
そのため解決方法がわからない
エラーメッセージ

Cannot use positional argument after named argument.

該当のソースコード

else if (isset($_POST['send']) && $_POST['send']) {
$message = "お問い合わせを受け付けました。 \r\n"
. "お名前:" . $_SESSION['name'] . "\r\n"
. "email:" . $_SESSION['email'] . "\r\n"
. "お問い合わせ内容: \r\n"
. preg_replace(pattern: "/\r\n|\r|\n/", replacement: "\r\n", $_SESSION['message']);
mail($_SESSION['emsil'], subject: 'お問い合わせありがとうございます。', $message);
mail(to: 'hatano.y@rouge.plala.or.jp', subject: 'お問い合わせありがとうございます。', $message);
$_SESSION = array();
$mode = 'send';

PHP ソースコード

試したこと

googleでの検索
youtube等での検索
書籍の読み返し

補足情報(FW/ツールのバージョンなど)

VScodeでの作業です

ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2021/09/08 19:47

>googleでの検索 youtube等での検索 書籍の読み返し 具体的にどう調べて何を試したのか書かれないと調べてないのと変わりません。 書籍が何のことか分かりませんし。
FKM

2021/09/09 00:10

使用しているPHPのバージョンを教えて下さい
guest

回答1

0

ベストアンサー

PHP に詳しいわけではないですが、下記のような理由かと思います。

Cannot use positional argument after named argument

日本語に訳すと「名前付き引数の後に位置引数を使用することはできません」となります。

PHP の引数の種類には「名前付き引数」と「位置引数」があります。
下記の装飾の個所が「名前付き引数」になります。そして、その後ろが「位置引数」になります。
その為、下記 (1) のようなケースが NG で、(2)~(4) のような書き方であれば OK ということかと思います。

php

1// NG : (1)「名前付き引数」の後ろに「位置引数」を指定 2preg_replace(pattern: "/\r\n|\r|\n/", replacement: "\r\n", $_SESSION['message']); 3 ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^

php

1// OK : (2)「位置引数」の後ろに「名前付き引数」を指定 2preg_replace("/\r\n|\r|\n/", "\r\n", subject:$_SESSION['message']); 3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

php

1// OK : (3) すべて「名前付き引数」で指定した場合 2preg_replace(pattern: "/\r\n|\r|\n/", replacement: "\r\n", subject:$_SESSION['message']); 3 ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

php

1// OK : (4) すべて「位置引数」で指定した場合 2preg_replace("/\r\n|\r|\n/", "\r\n", $_SESSION['message']);

<参考情報>
■ 【PHP8.0】PHPに名前付き引数が実装される
https://qiita.com/rana_kualu/items/13bc0c30192ee22c1396
■ PHP_ preg_replace - Manual
https://www.php.net/manual/ja/function.preg-replace.php
■ PHP_ mail - Manual
https://www.php.net/manual/ja/function.mail.php
■ php - Cannot use positional argument after named argument - Stack Overflow
https://stackoverflow.com/questions/67906116/cannot-use-positional-argument-after-named-argument

投稿2021/09/08 16:25

cx20

総合スコア4648

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

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

MR112358

2021/09/13 15:34

ありがとうございました。 おかげさまで解決できました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問