画像のコードを書いて、画像右のコードで使用関数を別ファイルにしたものが、画像左です。
これをCloud9の実行環境で実行すると、
のようなエラーが返ってきました。
見てみると、画像左のコードの2行目の{
が不要みたいな事を言われているんですが、他に原因はありますか?
ちなみに、Cloud9のPHPのバージョンは 7.0.13にしたんですが、Apacheの方が設定がうまくいってないみたいです。なので、実行環境としては、Apacheのデフォルトの環境だと思います。
追記
サンプルプログラムと見比べました => 同じでした。
Macのローカル開発環境で実行してみました。 => 正常に動作しました。
以上のことからみて、Cloud9側の設定の問題かと思ったんですが、どうでしょう?
Cloud9のデータのどこをいじればphp7の実行できますでしょうか?
PHP -vの実行結果は次の画像です。
必要かどうかわかりませんがapache2 -vの実行結果も
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/08 13:20
2016/12/08 13:26
2016/12/08 13:29
2016/12/08 13:40
2016/12/08 13:53
退会済みユーザー
2016/12/08 13:59 編集
2016/12/08 14:02
退会済みユーザー
2016/12/08 23:46
回答2件
0
{
がくるべき場所に、期待されていない :
があると書いてあります。
php
1function funcName() : type { 2}
という書き方はPHP7から書ける記述です。
実行環境が、7以上になっていないためと思われる。
php
1echo phpversion();
で確認して見ては?
質問中のソースコードはテキストで書いてください。
投稿2016/12/08 14:04
編集2016/12/08 14:05退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/10 08:26
退会済みユーザー
2016/12/10 09:05
2016/12/10 11:28
退会済みユーザー
2016/12/10 11:36
2016/12/10 11:54
退会済みユーザー
2016/12/10 12:03
2016/12/10 12:10
退会済みユーザー
2016/12/10 12:13
2016/12/10 12:16
2016/12/10 12:23
退会済みユーザー
2016/12/10 12:26
2016/12/10 12:35
退会済みユーザー
2016/12/10 12:40
2016/12/10 12:48
退会済みユーザー
2016/12/10 12:52
2016/12/10 13:01
退会済みユーザー
2016/12/10 13:03
2016/12/10 13:09
退会済みユーザー
2016/12/10 13:12
2016/12/10 13:27
2016/12/10 13:28
2016/12/10 13:34
退会済みユーザー
2016/12/10 13:35 編集
2016/12/10 13:58
退会済みユーザー
2016/12/10 14:17
2016/12/11 02:33
退会済みユーザー
2016/12/11 02:41
2016/12/11 13:42
0
ベストアンサー
画像左のコードの2行目の{が不要みたいな事を言われているんですが
expect は期待値とかでよく使う単語なので「'{'がくるはずの位置に':'がきている」みたいな意味と読むのが普通かと思います。英語がまったくだめでもgoogle翻訳を使えば、エラーメッセージの日本語訳は以下のようになるので、意味が逆であることはすぐわかります。
パースエラー。 構文エラー、予期しない ':'、/ home / ubuntu / workspace / 6 / 6-7 include.phpの '{'が2行目にあると想定しています。
':float'が構文エラーになっていることがわかったので、PHPの構文について調べてみます。
※PHPはOSSの設定フィアルを編集する際に少し目にすることがあるだけで構文まともに知らないので。
「php 関数 戻り値 型指定」検索
戻り値の型指定はPHP7で追加されたようですね。
ここまでで実行環境がPHP7になっていないのは分かるので、確認するのはソースコードではなく環境設定周りになります。
【追記】
以下を参考にPHP7環境設定してみました。
インストールされているPHPを確認したところ、PHP5でした。
sh
1$ dpkg -l | grep php
以下のコマンドでPHP7をインストール。
sh
1$ sudo add-apt-repository ppa:ondrej/php 2$ sudo apt-get update 3$ sudo apt-get install libapache2-mod-php7.1
apacheのPHP設定変更
sh
1$ sudo a2dismod php5 2$ sudo a2enmod php7.1
デフォルトのコードに「phpinfo();
」追加
php
1<html><body> 2<?php 3// A simple web site in Cloud9 that runs through Apache 4// Press the 'Run' button on the top to start the web server, 5// then click the URL that is emitted to the Output tab of the console 6 7echo 'Hello world from Cloud9!'; 8 9phpinfo(); 10 11?> 12</body> 13</html>
バージョン確認
【追記2】
PHP7.0をインストールしてみた。
sh
1$ sudo apt-get install libapache2-mod-php7.0
apache設定変更
バージョン確認
【追記3】
インストール済みのパッケージ確認
sh
1$ dpkg -l | grep mod-php 2 3ii libapache2-mod-php5 5.5.9+dfsg-1ubuntu4.20 amd64 server-side, HTML-embedded scripting language (Apache 2 module) 4ii libapache2-mod-php7.0 7.0.14-1+deb.sury.org~trusty+1 amd64 server-side, HTML-embedded scripting language (Apache 2 module) 5ii libapache2-mod-php7.1 7.1.0-3+deb.sury.org~trusty+1 amd64 server-side, HTML-embedded scripting language (Apache 2 module)
インストール可能なパッケージの確認
sh
1$ apt-cache search mod-php 2libapache2-mod-php5 - server-side, HTML-embedded scripting language (Apache 2 module) 3libapache2-mod-php5filter - server-side, HTML-embedded scripting language (apache 2 filter module) 4libapache2-mod-php5.5 - server-side, HTML-embedded scripting language (Apache 2 module) 5libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module) 6libapache2-mod-php - server-side, HTML-embedded scripting language (Apache 2 module) (default) 7libapache2-mod-php5.6 - server-side, HTML-embedded scripting language (Apache 2 module) 8libapache2-mod-php7.1 - server-side, HTML-embedded scripting language (Apache 2 module)
【追記4】
インストール可能なパッケージの一覧を確認する。
⇒php5しかない
sh
1$ apt-cache search mod-php
libapache2-mod-php5 - server-side, HTML-embedded scripting language (Apache 2 module)
phpのパッケージリポジトリを追加する。
sh
1$ sudo add-apt-repository ppa:ondrej/php
Co-installable PHP versions: PHP 5.5, 5.6, PHP 7.0 and batteries included. You can get more information about the packages at https://deb.sury.org For PHP 5.4 on Ubuntu 12.04 use: ppa:ondrej/php5-oldstable BUGS&FEATURES: This PPA now has a issue tracker: https://deb.sury.org/#bug-reporting PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/ WARNING: add-apt-repository is broken with non-UTF-8 locales, see https://github.com/oerdnj/deb.sury.org/issues/56 for workaround: # LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php More info: https://launchpad.net/~ondrej/+archive/ubuntu/php Press [ENTER] to continue or ctrl-c to cancel adding it gpg: keyring `/tmp/tmp_p2yk8n_/secring.gpg' created gpg: keyring `/tmp/tmp_p2yk8n_/pubring.gpg' created gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.com gpg: /tmp/tmp_p2yk8n_/trustdb.gpg: trustdb created gpg: key E5267A6C: public key "Launchpad PPA for Ondřej Surý" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) OK
インストール可能なパッケージの一覧を確認する。
⇒この時点ではまだphp5しかない
sh
1$ apt-cache search mod-php
libapache2-mod-php5 - server-side, HTML-embedded scripting language (Apache 2 module)
パッケージインデックスを更新する。
sh
1$ sudo apt-get update
Ign http://downloads-distro.mongodb.org dist InRelease Get:1 http://security.ubuntu.com trusty-security InRelease [65.9 kB] Hit http://ppa.launchpad.net trusty InRelease ≪省略≫ Get:54 http://asia-east1.gce.clouds.archive.ubuntu.com trusty/restricted i386 Packages [16.4 kB] Get:55 http://asia-east1.gce.clouds.archive.ubuntu.com trusty/universe i386 Packages [7597 kB] Get:56 http://asia-east1.gce.clouds.archive.ubuntu.com trusty/multiverse i386 Packages [172 kB] Fetched 35.1 MB in 16s (2188 kB/s) Reading package lists... Done W: Size of file /var/lib/apt/lists/toolbelt.heroku.com_ubuntu_._Packages.gz is not what the server reported 719 725
インストール可能なパッケージの一覧を確認する。
⇒php5.5、php5.6、php7.0、php7.1が追加された
sh
1$ apt-cache search mod-php
libapache2-mod-php5 - server-side, HTML-embedded scripting language (Apache 2 module) libapache2-mod-php5filter - server-side, HTML-embedded scripting language (apache 2 filter module) libapache2-mod-php5.5 - server-side, HTML-embedded scripting language (Apache 2 module) libapache2-mod-php7.0 - server-side, HTML-embedded scripting language (Apache 2 module) libapache2-mod-php - server-side, HTML-embedded scripting language (Apache 2 module) (default) libapache2-mod-php5.6 - server-side, HTML-embedded scripting language (Apache 2 module) libapache2-mod-php7.1 - server-side, HTML-embedded scripting language (Apache 2 module)
投稿2016/12/08 14:09
編集2016/12/11 01:51総合スコア1800
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/12/08 14:19
2016/12/09 08:22
2016/12/09 11:58
2016/12/09 12:09
2016/12/09 12:49
2016/12/09 13:17
2016/12/09 13:23
2016/12/09 14:31
2016/12/10 12:07 編集
2016/12/10 12:50
2016/12/10 13:19
2016/12/10 13:56
2016/12/11 01:08
2016/12/11 02:20
2016/12/11 02:33
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。