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

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

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

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

Q&A

1回答

1002閲覧

PHPエラーメッセージ

nokmur

総合スコア0

PHP

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

0グッド

1クリップ

投稿2021/06/16 02:35

前提・実現したいこと

Eclipse PHP でコーディングしている時、不可解なメッセージが出て、対処できません。
アドバイスをいただければありがたいです。

イメージ説明

11行目のエラーメッセージ:colon required
18行目のエラーメッセージ:semi colon required

何故このようなエラーが出るのか、理解できず困っています・
設定⇒PHP⇒検証⇒エラー/警告 ですべての項目を「無視」にしてみましたが、変わりありませんでした。

なお Eclipse PHP のダウンロードファイルは Windows 64bit PHP Full Edition version 2020-12 です。
以上よろしくおねがいします。

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

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

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

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

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

yambejp

2021/06/16 02:39

画像ではなくマークダウンしたテキストを追記して下さい
m.ts10806

2021/06/16 02:42

プログラム実行に影響がなければ無視していいです
guest

回答1

0

ソースコード編集と、文法チェックのタイミングが狂ってくると、
現状にそぐわないチェック結果表示になることがあります。
気になるようであれば一旦保存して閉じて、ファイルを開き直せばいいです。


さて、
PHPの文字列リテラル(で通じますか)っていくつか書き方があるので、
それをお伝えしたいです。

PHP: 文字列 - Manual

「'」シングルクォーテーション(ドキュメント上では、引用符)
「"」ダブルクォーテーション(ドキュメント上では、二重引用符)

ダブルクォーテーションの中でダブルクォーテーションを使いたくて、
仕方なく文字エスケープ用に「\」を挟んでいる状況ですよね。

これ、シングルクォーテーションにすればラクです。

php

1<?php 2$inyo = ' 3<p style="color: #ff0000; ">あいうえお</p> 4<p style="color: #00ff00; ">かきくけこ</p> 5<p style="color: #0000ff; ">さしすせそ</p> 6<p style="color: #ff0000; ">あいうえお</p> 7<p style="color: #00ff00; ">かきくけこ</p> 8<p style="color: #0000ff; ">さしすせそ</p> 9';

もっとラクに使うのに、ヒアドキュメント構文やnowdoc構文を使うべきです。
今回はnowdoc構文がふさわしいです。

php

1<?php 2$inyo = <<<'EOT' 3<p style="color: #ff0000; ">あいうえお</p> 4<p style="color: #00ff00; ">かきくけこ</p> 5<p style="color: #0000ff; ">さしすせそ</p> 6<p style="color: #ff0000; ">あいうえお</p> 7<p style="color: #00ff00; ">かきくけこ</p> 8<p style="color: #0000ff; ">さしすせそ</p> 9EOT;

どこからどこまでを変数に代入しようとしているかがはっきりします。

あと、試せばわかりますが、
先のシングルクォーテーションで書いたものと、
nowdoc構文で書いたものとでは、
改行文字の付き方が厳密には変わってきます。
シングルクォーテーションでの書き方と全く同じにしたいのであれば、
こうなります。

php

1<?php 2$inyo = <<<'EOT' 3 4<p style="color: #ff0000; ">あいうえお</p> 5<p style="color: #00ff00; ">かきくけこ</p> 6<p style="color: #0000ff; ">さしすせそ</p> 7<p style="color: #ff0000; ">あいうえお</p> 8<p style="color: #00ff00; ">かきくけこ</p> 9<p style="color: #0000ff; ">さしすせそ</p> 10 11EOT;

伝わりますかね、ほんとこういうのは自分で工夫して試してもらいたいのですが。

投稿2021/06/16 02:45

編集2021/06/16 02:54
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

nokmur

2021/06/16 04:13

早速ご丁寧なアドバイスありがとうございました。 一旦保存して開き直してみましたが状況はかわりません。 ただ、効率的な書き方はともかくとして、ダブルコーテーションをエスケープしてもエラーではないと思いますし、そもそも同じ書き方なのになぜ3行目になって初めてエラーと判定されるのか、不可解なのですが・・・
退会済みユーザー

退会済みユーザー

2021/06/16 04:21 編集

ツールを作った人じゃないので原因は流石にわかりかねます。 ツールも完璧ではないので、 逆に考えて、ツールが誤解しないコーディング方法に徹することをおすすめします。 そういう事も踏まえて、文字列リテラルの書き方を添えました。
退会済みユーザー

退会済みユーザー

2021/06/16 14:53

Visual Studio Codeなど、ほかの人気の開発環境に乗り換えるのもよいかと。 (私はVScodeからphpStormに変えて、生産性が高まったと感じております。)
nokmur

2021/06/17 00:04

エラーコードそのものに納得した訳ではありませんが、それを避けるエンコーディングも確かに賢明な選択肢かなと納得いたしました。いろいろアドバイスをいただきありがとうございました。これにて質問は終了させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問