• 締切済み

ダブル、シングルクォーテーションでエラーが…

はじめてプログラムに挑戦している者です。 独習PHPという本で、値がダブルクォーテーションで囲まれているか シングルクォーテーションで囲まれているかで、結果が違うという内容なのですが サンプル通りに入力して、ブラウザで表示すると サンプル <?php $title='サーバサイド技術の学び舎 - WINGS'; $data1="「$title」はサーバサイド技術の最新情報をお届けします。<br />"; $data2='「$title」はサーバサイド技術の最新情報をお届けします。<br />'; print($data1); print($data2); ?> ↓次のようなエラーが出てしまいます。 Parse error: parse error, expecting `']'' in C:\Apache Software Foundation\Apache2.2\htdocs\samples\chap2\variable2.php on line 3 どうすれば正しく表示されるようになりますでしょうか? よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数1

みんなの回答

  • x_jouet_x
  • ベストアンサー率68% (162/236)
回答No.2

PHPの文字列に関することですね。 http://www.php.net/manual/ja/language.types.string.php 一度、上記URLの引用符と二重引用符の項目を参照してみて下さい。

  • hide1978
  • ベストアンサー率42% (32/75)
回答No.1

ダブルクォーテーションで括られた文字列内に$から始まる文字列が存在する場合、その$から始まる文字列は変数として扱われることになります。 しかしながらkotatu0031さんが示しているプログラムの場合、PHPは【$title」はサーバサイド技術の最新情報をお届けします。<br />】を変数名と判断してしまいます。 これを回避する (1) 変数名の後ろに半角スペースを入れる。 (2) 変数名を波括弧で括る。 (3) そもそも変数をダブルクォーテーションやシングルクォーテーション内に記述しない。 といった方法があります。 (1)の場合 $data1="「$title 」はサーバサイド技術の最新情報をお届けします。<br />"; (2)の場合 $data1="「{$title}」はサーバサイド技術の最新情報をお届けします。<br />"; (3)の場合 $data1="「" . $title . "」はサーバサイド技術の最新情報をお届けします。<br />";

関連するQ&A

  • エラーの原因がわかりません

    こんにちは。 phpの学習目的でXAMPPをインストールしたのですが以下のようなエラーが出ます。 Parse error: parse error in C:\xampplite\htdocs\sample.php on line 4 この意味がよくわからずにいます(on line 4 ??) apacheの設定が済んでいないのでしょうか? http://localhost/ を入力すると正常に /xampp/index.php/に飛び、.phpを読み込んでいます。 何がいけないのでしょうか? ご教授下さい。お願いします。

    • 締切済み
    • PHP
  • ダブルクォーテーションで囲まないと表示できない変数

    ネットから拾ってきたサンプルソースをphp5.2.3を使って試行錯誤中です。 今回、メール受信のソースを試しており、 exitに変数を添えて変数の確認をしていたところ、 8行目は変数が表示できず、 9行目のようにダブルクォーテーションで囲むと表示できる といった変数がいくつかあることに気付きました。 10行目などの変数は、ダブルクォーテーションなしでも表示できますし、 print関数だと、ダブルクォーテーションのあるなしにかかわらず表示できています。 どのような変数でおこる現象なのか、知りたいと興味がわきました。 ご存知の方がいらっしゃいましたら、ご回答よろしくお願い致します。 ソース概略 (文頭の数字は行数,$host/$user/$passは事前に代入済) 01 $sock = fsockopen($host, 110, $err, $errno, 10) or die("サーバーに接続できません"); 02 $buf = fgets($sock, 512); 03 if(substr($buf, 0, 3) != '+OK') die($buf); 04 $buf = _sendcmd("USER $user"); 05 $buf = _sendcmd("PASS $pswd"); 06 $data = _sendcmd("STAT"); 07 sscanf($data, '+OK %d %d', $num, $size);   // 以下、必要なもの以外はコメントアウトして確認 08 exit($num);  //表示できない 09 exit("$num"); //表示できる 10 exit($host);  //表示できる 11 print($num);  //表示できる 12 print("$num"); //表示できる

    • ベストアンサー
    • PHP
  • PHPのParse errorについて質問

    PHPのParse errorについて質問ですが、 昨日より、Apacheサーバーなどの設定を変更していないにも関わらず、急に以下の様なエラーが頻繁に 表示されます。 原因は、なんでしょうか? どうやって修正すればいいのでしょうか? Parse error: parse error, unexpected T_ELSE in ディレクトリ名/index.php on line 43

    • ベストアンサー
    • PHP
  • Parse errorなんですが・・・

    Parse error: syntax error, unexpected '&' in C:\Program Files\Apache Group\Apache2\htdocs\php10\dbtest1.php on line 2 というエラーがでます。 ホスト名、ユーザー名、パスワードはあっていると思うんですが・・・ というかホスト名とはなんのことでしょうか?? ユーザー名、パスワードはデータベースでの設定ですよね? <?php &con=mysql_connect("localhost","sample","password") or die("接続できません。"); print"接続に成功しました。"; mysql_close(&con); ?> 本当に初心者ですみません ご教授、お願いいたします。

    • ベストアンサー
    • PHP
  • なぜエラーが出るのか分からない(PHP)

    ●質問の主旨 check.phpファイルの最終行(</html>のところ)で Parse error: syntax error, unexpected end of file としてエラーが表示されます。 なぜエラー表示されるのでしょうか?ご存知の方ご教示願います。 (eclipseでもエラー表示されているのは分かりますが、 何がエラーなのか分かりません) ●状況 1.index.htmlのフォームに入力し、送信ボタンを押す (添付画像) 2.check.phpに飛ばす 3.飛ばすとエラーが表示される ●環境 windows8 xammp1.8.1 ●コード (index.html) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <form method="post" action="check.php"> ニックネームを入力してください<br/> <input name="nickname" type="text" style="width:100px"><br/> メールアドレスを入力してください<br/> <input name="email" type="text" style="width:200px"><br/> ご意見を入力してください<br/> <input name="goiken" type="text" style="width:300px"><br/> <br/> <input type="submit" value="送信"> </form> </body> </html> (check.php) <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>PHPの基礎</title> </head> <body> <?php $nickname = $_POST['nickname']; $email = $_POST['email']; $goiken = $_POST['goiken']; if($nickname =='') { print'ニックネームが入力されてません'; } else { print'ようこそ!'; print $nickname; print'様'; print'<br/>'; } if($email =='') { print'emailが入力されてません'; } else { print'ようこそ!'; print $email; print'<br/>'; if($goiken =='') { print'ご意見が入力されてません'; } else { print'ご意見'; print $goiken; print'』<br/>'; } ?> </body> </html>

    • ベストアンサー
    • PHP
  • Parse errorについて教えてください

    私は独習PHPという参考書でプログラムの勉強をしている初心者です。 先日、PHPの「オブジェクト指向構文」を勉強していたのですが、その中の「継承」という項目にあるサンプルプログラムを動かしてみたのですがParse errorと言うメッセージが出て動きません。構文に関するエラーという事はわかったのですが括弧や;をチェックしても参考書と変わらないのでタイプミスではないと思うのですが、どなたか解決法をご教授お願いします。以下はそのときのプログラムとエラーメッセージです。 ファイル名:subclass.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http//www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <title>サブクラス</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF8" /> </head> <body> <?php class MyClass {  protected $data; public function __construct($data){ $this->data=$data; } public function showData(){ return '入力値は「'.$this->data.'」です。'; } } class MySubClass extends MyClass { public function showData(){ return '***入力値は「'.$this->data.'」です。***'; } } $obj=new MySubClass('PEAR'); print($obj->showData()); ?> </body> </html> エラーメッセージ: Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\samples\chap2\subclass.php on line 12

    • ベストアンサー
    • PHP
  • PHPでクラス内のpublicでエラーになる原因

    Apache/1.3.27を使っています。 下記コードをローカルで表示すると Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\phpdev\www\ajax\sql.php on line 11 というエラーが出てしまいます。 なぜエラーになるのか原因が分かりません。 アドバイスを頂けないでしょうか。 <html> <head><title>PHP TEST</title></head> <body> <?php $tv = new Television(); $tv->$channelNo = 8; $tv->dispChannel(); class Television{ public $channelNo; function dispChannel(){ print('現在のチャンネルは'.$this->channelNo); } } ?> </body> </html>

    • ベストアンサー
    • PHP
  • PHPでエラーがでてしまって困っています。

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /Applications/MAMP/htdocs/5-2-1.php on line 30 このエラーを解消できません。 下記は実践マスターPHP+MYSQLという書籍のなかのサンプルなんですが、どこが間違っているかどなたか教えていただけないでしょうか? エラーを検索するとダブルクォーテーションの使い方が原因と書いてあるんですが、最近PHPを勉強したばかりでどうやっても解決できません。 function check_3(&$str){ $str =str_replace($GLOBALS["from"],$GLOBALS["to"],$str);  ←この行でエラー global $msg; $msg = $GLOBALS["from"].'から'.$GLOBALS["to"].'へ置換しました!<br>'; return strlen($str); } 宜しくお願いします。

    • 締切済み
    • PHP
  • PHPの変数未定義エラー

    <p>PHPのテストです。</p> <p> <?php print $name.'さん<br />'; ?> </p> と入れてみましたが僕の場合は ------------------------------------------------------------------------ PHPのテストです。 Notice: Undefined variable: name in C:\Program Files\Apache\Apache24\htdocs\sample3-1.php on line 17 さん ------------------------------------------------------------------------- となってしまいました。$name = NULL;をあらかじめ入れておけばこのページのように ------------------------------------------------------------------------- PHPのテストです。 さん ------------------------------------------------------------------------ となってくれます。この違いはバージョンなどの違いでしょうか?

    • ベストアンサー
    • PHP
  • どうしてもParse errorがでます

    独習PHPという本でプログラミングを勉強しています。 本の通りにプログラムを書いたのですがどうしてもエラーがでます。 Parse error: parse error, unexpected ';' in C:\Program Files\Apache Group\Apache2\htdocs\insert_process.php on line 7 セミコロンも確認しました。どうかご教授ください。 以下がソースです。 <?php try { $db=new PDO('sqlite:samples.sqlite'); $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $db->exec("INSERT INTO address(name,address,tel,email) VALUES(" .$db->quote($_POST['name'].",".$db->quote($_POST['address']."," .$db->quote($_POST['tel'].",".$db->quote($_POST['email']).")"); header('Location: http://'.$_SERVER['HTTP_HOST'] .dirname($_SERVER['PHP_SELF']).'/insert_form.php'); } catch (PDOException $e){ print('エラー発生:'.$e->getMessage()); } ?>

    • ベストアンサー
    • PHP

専門家に質問してみよう