• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【PHP】declare命令で”Fatal err)

【PHP】declare命令でFatal errorが出る問題の原因と解決方法

このQ&Aのポイント
  • PHPのdeclare命令でFatal errorが発生し、原因と解決方法について説明します。
  • strict_typesディレクティブによる厳密な型チェックを有効にしようとした際、先頭に記述する必要があります。
  • また、「declare(strict_types=1);」の部分をコメントアウトすることで問題が解決する場合もあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (742/5651)
回答No.2

先ほど空白行のことを書きましたが、空白行でもあれば、と言う意味です。 空白以外の文字があればエラーになりますし、ファイルがBOM付きのUTF-8の場合もエラーになるようです。

blueletter12345
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • dell_OK
  • ベストアンサー率13% (742/5651)
回答No.1

掲示されているコードでは2行目が「declare」なのに、エラーは4行目になっています。 「<?php」の上に空白行があるとエラーになるかも知れません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Objective-cの型の初期化について質問です。

    Objective-cの型の初期化について質問です。 たとえば次のようなfloat型の戻り値関数を定義していて、 ----------------- - (float) getMoveSize { float moveSize = 1.1f; return moveSize; } ----------------- 関数の戻り値を取得しようとするとコンパイルエラーになります。 ----------------- float height = [self getMoveSize]; //→error: incompatible types in initialization ----------------- どのようにすればよいか教えて下さい。 float height = 0.0f; height += [self getMoveSize] みたいなことをやりたいだけです。

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

    初心者で申し訳ありません。 型は正しいと思うのですが、エラーが出てしまいます。 floatを int, char に変えたら通ります。floatの時だけ以下のエラーが出ます。私だけなのでしょうか? MyObject1.m: error: incompatible types in assignment 全く理解できません ご存知の方教えて頂けますか? (エラー部以外省いています。) @interface MyObject : NSObject { IBOutlet id myOutlet; float entireHeight; } @end @implementation MyObject -(float)getHeight { return entireHeight; } @end @interface MyObject1 : NSObject { IBOutlet id myOutlet; } @end -(void)reflectionLayout { float height; height = [myOutlet getHeight];//<-error } @end

  • PHP Strict Standards

    本に載っている、PEARのCalendar.phpを使用したプログラムを実行すると Strict Standards: Non-static method Calendar_Engine_Factory::getEngine() should not be called statically, assuming $this from incompatible context in /usr/share/php/Calendar/Calendar.php on line 210 というエラーが出ます。 ネットで検索すると、php.iniの中の error_reporting = E_ALL | E_STRICT を error_reporting = E_ALL | ~E_STRICT に変えるだけでエラーが出なくなるみたいでした。 http://www.xoops.org/modules/newbb/viewtopic.php?post_id=330699 私のは error_reporting = E_ALL & ~E_DEPRECATED となっていたので、 error_reporting = E_ALL | ~E_STRICT に変えてlamppを再起動しましたが、まったく同じエラーが出ます。 error_reporting = E_ALL & ~E_STRICT にしても同じです。 解決方法を教えてください、 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 至急おねがいします

    Cのプログラムの課題をやっているんですが、two or more types in declaration of ~っていうエラーが出てしまいました。どうすれば直せますか??また意味を教えてください

  • GPIBドライバIC uPD7210を使用したGPIBカードをFreeBSD7.0(?)で使用するには?

    GPIBドライバIC uPD7210を使用したGPIBカードをFreeBSD7.0(?)で使用するためにネットにあったものを参考に、カーネルを再構築してmakeを実行したところ、errorがたくさん出て困っています。他サイトでも同じ質問をしたのですがあまり回答がないのでこちらでも質問します。 とりあえずネットに書いてあることをそのままやってみてerrorメッセージがなくなるようにいろいろ調べて試しているのですが一向にうまくいきません。どなたかアドバイスをお願いします。卒研で先生にやらされているのですがC言語を授業で少しやったことがある程度なので知識は限りなく乏しいです。しかし、今さらテーマを変えるわけにもいかないのでなんとかしたいのです。 デバイスドライバ等は下記アドレスにあります。 http://www.youko-house.ne.jp/~hirohito/soft/upd7210-2 ver.4.xではうまくいくそうです。目的はgpibを使った計測システム作成なので、最悪ver4を使おうと思うのですがそれでは何もやっていないのとほぼ同じなのでver.7になんとかつっこめないかと思っています。 あとメジャー番号の振り分けも必要なみたいなのですがver.4の場合、/usr/src/sys/conf/majorsに一覧になっているのですがver.7ではmajorsがなくなっていてどこかにあるのかわかりません。 下にエラーメッセージを示します。warningは先生が無視してもいいといったので(ホントかわかりませんが)とりあえずerror:だけ示します。すべてupd7210.cのものです。 78: error: 'nopoll' undeclared here (not in a function) 79: error: 'nommap' undeclared here (not in a function) 80: error: 'nostrategy' undeclared here (not in a function) 83: error: 'nodump' undeclared here (not in a function) 84: error: 'nopsize' undeclared here (not in a function) 134: error: conflicting types for 'gpib_open' 65: error: previous declaration of 'gpib_open' was here In function 'gpib_open': At top level: 160: error: conflicting types for 'gpib_close' 66: error: previous declaration of 'gpib_close' was here In function 'gpib_close': At top level: 187: error: conflicting types for 'gpib_read' 67: error: previous declaration of 'gpib_read' was here In function 'gpib_read': At top level: 254: error: conflicting types for 'gpib_write' 68: error: previous declaration of 'gpib_write' was here In function 'gpib_write': At top level: 314: error: conflicting types for 'gpib_ioctl' 69: error: previous declaration of 'gpib_ioctl' was here In function 'gpib_ioctl': 377: error: label at end of compound statement

  • PHP5になったら動かない

    サーバレンタル会社の都合でPHP4だったのがPHP5になりました。 特に不都合なく動いてたのですが、今日1個エラーが出ているプログラムを確認しました。 どんどん行を削っていってどうもここがおかしいというところをつきとめたのですが、PHP5についてはまったく知識がない状態だったので何がおかしいのかさっぱりわかりません。 ご教授お願いいたします。 【ソース】 <?php if(!$m){ print $buff3[0]."件中 500位以内にありませんでした。"; } print "<p>&nbsp;</p>"; ?> 【実行結果】 Parse error: syntax error, unexpected '>' in /public_html/hogehoge.php on line 6 if文を削除すると動くので、!$mの記述方法が悪いのかとにらんでいます。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • phpファイルの命令実行順番について

    いつも勉強させていただいております。 初歩的な質問になるかもしれませんが、回答いただければ幸いです。 現在PHPの学習をしております。 phpファイルに記載された命令がどのような順に実行されるのか、ということにたいして私なりの理解が正しいかどうか確認していただきたいのと、ソースについての質問をさせていただきたく思います。 以下、動作確認済みのサンプルソースです。 <html> <head> <title> 画像を保存 </title> </head> <body> <?php if(@$_POST["text1"]) { $width = 300; $height = 200; $fname = $_POST["text1"]; $img = imagecreate($width, $height); imagecolorallocate($img, 0, 255, 0); if(imagepng($img,$fname)) { echo "<p><a href=\"$fname\">作成されたファイル</a>"; } } ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> <table> <tr> <td> <input type="text" name="text1" value="test.png" > </td> <td> <input type="submit" value="作成" name="sub1" > </td> </tr> </table> </form> </body> </html> ”作成”ボタンを押すと、text.pngという画像ファイルをこのソースがあるフォルダ内に保存し、というだけの処理をするものです。 ・上記サンプルにおける、記述された命令の実行順について (1) <?php で囲まれている部分が動作する。 →最初は$_POSTに何も入っていないので、if条件は偽となり、何も動作しない。 (2) <form>から、</form>で囲まれている部分が動作する。 テキスト入力エリアや作成ボタンなどのイメージが完成する PHP_SELFを$_SERVERに指定しているので、この情報をこのファイル内の、<?php~で囲まれているところに渡す。 ここまでで画面表示が完了する。さらに作成ボタンを押したときの動作を続ける (3) <input type="text" name="text1" value="test.png" > 初期値として画面に表示したい値をvalueに指定する。 <input type="submit" value="作成" name="sub1" > ボタンに表示したい文字をvalueに指定する。 作成ボタンを押すことで、"text1"という名前とヒモづいたテキストエリアに書かれた情報がPOSTにより渡される。 このサンプルではtextひとつしかないが、他のラジオボタンなど全ての情報が作成ボタンを押すことにより、渡される。 これにより、$_POSTへnameに該当するものを指定すると、それにヒモづいた情報が取得できるようになる。 作成ボタンを押した後は、(1)に戻り、text1にヒモづく情報が見つかることにより、if条件内の処理が動作する。 この場合は「作成されたファイル」という文字がでてくる。 さらに(2)が動作し、「作成されたファイル」という文字の下にテキストエリアや作成ボタンが表示される。 質問 <form>内にあるactionへの設定ですが、"<?php echo $_SERVER["PHP_SELF"]?>"は決まり文句のようなもので、PHP_SELFのみ期待する動作に応じて変化する、という考え方でいいでしょうか? この記述は使用している参考書にあったものですが、googleなどで検索するとaction=ファイル名、となっているものもありました。なぜこのファイルではこのような書き方をしていて、他のものではファイル名をactionに設定しているのでしょうか? actionへ指定するものはどういったものを指定するものなのでしょうか? actionの使い方がよくわかりません。 お手数ですが、ご回答いただける方、よろしくお願いします。

    • ベストアンサー
    • PHP
  • Movable Type のテンプレート内へPHPの記述するとエラーがでてしまします

    Movable Type(以下MT)をカスタマイズしています。 MTをPHP化してテンプレートにPHPを記述しているのですが、アーカイブテンプレートのブログ記事テンプレートにあるPHPの記述をすると、エラーが出てしまうのです。 PHPの記述とエラーの内容は以下の通りです。 ■PHPの記述 <?php <MTSetVar name="myName" value="北村"> <?php echo('<$MTGetVar name="myName"$>'); ?> ■エラーの内容 Smarty error: [in evaluated template line 9]: syntax error: unrecognized tag '/php' (Smarty_Compiler.class.php, line 580) 上記と同じ記述をアーカイブテンプレートのブログ記事リストテンプレートに記述した場合は、エラーは出ず、ちゃんと「北村」という文字が表示されるのですが、なぜかブログ記事テンプレートに記述すると上記のエラーが出てしまいます。 なお、制作環境は以下の通りです。 Movable Typeのバージョン:4.1 サーバーのPHPのバージョン:5.2 かれこれ半日試行錯誤しております。 原因に心あたりのあるかた、是非ご教授お願いいたします。さい。

  • PHPソフトにつきまして

    ある、PHPソフトに下記の一文があったのですが、○○に何を入力すればよいのでしょうか? ・$mysql_table_prefix = "○○"; // In most cases leave blank. データベースのテーブル名を入力すればよいという記述がありましたが、テーブル名だと、エラーが出て動作しません。

    • ベストアンサー
    • PHP
  • <title>~<title>部分にPHP読み込み

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <title>●●●●●●</title> <meta http-equiv="content-script-type" content="text/javascript" /> </head> <body> ~ 上記<title>●●●●●●</title>部分の、●●●●●●にtitle.phpの内容を挿入したく、 <?php require("title.php"); ?> と記述したのですが、エラーが出てしまいます。 title.php単体では正常に文字が表示されます。 どのように記述したら良いか、どなたかご教授いただけないでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP