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

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

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

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

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

Q&A

解決済

3回答

572閲覧

array_mapを使用したforeachがブラウザ上だとエラーになってしまう

cometbeet

総合スコア21

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

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

0グッド

1クリップ

投稿2018/12/28 00:35

編集2018/12/28 06:16

#わからないこと
現在Qiitaで以下のプログラムを見つけて実行してみたのですがこれをブラウザ上で見ると真っ白になりapach2のエラーログにエラーが発生してしまいました。
そのエラーだとforeachの行の)が予想外で::ダブルコロンを求められたのですがどこを修正すればいいのかいいのかわかりません。
ターミナルで実行した場合は問題なく実行できました。
配列で受け取るのではなく変数で受け取るしかないのでしょうか。

#プログラム

PHP

1<?php 2 3$array1 = ['今日', '天気', '晴れ', '雨']; 4$array2 = ['の', 'は', 'のち', 'です']; 5 6foreach (array_map(null, $array1, $array2) as [$val1, $val2]) { 7 echo "$val1$val2"; 8}

#エラー

PHP Parse error: syntax error, unexpected ')', expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in ファイル名のforeachの行

#phpのバージョン

PHP 7.2.13-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: Dec 7 2018 08:07:08) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.13-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies with Xdebug v2.6.1, Copyright (c) 2002-2018, by Derick Rethans

#phpinfo()

PHP Version 7.0.33-1+ubuntu16.04.1+deb.sury.org+1 System Linux XXX 4.4.0-17134-Microsoft #471-Microsoft Fri Dec 07 20:04:00 PST 2018 x86_64 Build Date Dec 7 2018 08:27:52 Server API Apache 2.0 Handler Virtual Directory Support disabled Configuration File (php.ini) Path /etc/php/7.0/apache2 Loaded Configuration File /etc/php/7.0/apache2/php.ini Scan this dir for additional .ini files /etc/php/7.0/apache2/conf.d Additional .ini files parsed /etc/php/7.0/apache2/conf.d/10-mysqlnd.ini, /etc/php/7.0/apache2/conf.d/10-opcache.ini, /etc/php/7.0/apache2/conf.d/10-pdo.ini, /etc/php/7.0/apache2/conf.d/15-xml.ini, /etc/php/7.0/apache2/conf.d/20-calendar.ini, /etc/php/7.0/apache2/conf.d/20-ctype.ini, /etc/php/7.0/apache2/conf.d/20-dom.ini, /etc/php/7.0/apache2/conf.d/20-exif.ini, /etc/php/7.0/apache2/conf.d/20-fileinfo.ini, /etc/php/7.0/apache2/conf.d/20-ftp.ini, /etc/php/7.0/apache2/conf.d/20-gettext.ini, /etc/php/7.0/apache2/conf.d/20-iconv.ini, /etc/php/7.0/apache2/conf.d/20-json.ini, /etc/php/7.0/apache2/conf.d/20-mbstring.ini, /etc/php/7.0/apache2/conf.d/20-mcrypt.ini, /etc/php/7.0/apache2/conf.d/20-mysqli.ini, /etc/php/7.0/apache2/conf.d/20-pdo_mysql.ini, /etc/php/7.0/apache2/conf.d/20-phar.ini, /etc/php/7.0/apache2/conf.d/20-posix.ini, /etc/php/7.0/apache2/conf.d/20-readline.ini, /etc/php/7.0/apache2/conf.d/20-shmop.ini, /etc/php/7.0/apache2/conf.d/20-simplexml.ini, /etc/php/7.0/apache2/conf.d/20-sockets.ini, /etc/php/7.0/apache2/conf.d/20-sysvmsg.ini, /etc/php/7.0/apache2/conf.d/20-sysvsem.ini, /etc/php/7.0/apache2/conf.d/20-sysvshm.ini, /etc/php/7.0/apache2/conf.d/20-tokenizer.ini, /etc/php/7.0/apache2/conf.d/20-wddx.ini, /etc/php/7.0/apache2/conf.d/20-xdebug.ini, /etc/php/7.0/apache2/conf.d/20-xmlreader.ini, /etc/php/7.0/apache2/conf.d/20-xmlwriter.ini, /etc/php/7.0/apache2/conf.d/20-xsl.ini PHP API 20151012 PHP Extension 20151012 Zend Extension 320151012 Zend Extension Build API320151012,NTS PHP Extension Build API20151012,NTS Debug Build no Thread Safety disabled Zend Signal Handling disabled Zend Memory Manager enabled Zend Multibyte Support provided by mbstring IPv6 Support enabled DTrace Support available, disabled Registered PHP Streams https, ftps, compress.zlib, php, file, glob, data, http, ftp, phar Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv2, tls, tlsv1.0, tlsv1.1, tlsv1.2 Registered Stream Filters zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, convert.iconv.*, mcrypt.*, mdecrypt.*

#サイトのURL
Qiita:https://qiita.com/KOH_TA/items/c69b0fce9da1b114fef9

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

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

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

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

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

m.ts10806

2018/12/28 00:37

再現しません。PHPのバージョンは幾つでしょうか?phpinfo()に記載されている内容で質問本文に追記してください。
m.ts10806

2018/12/28 06:15

この内容ブラウザから見てますか?コマンド実行で確認しても意味ないですよ。
cometbeet

2018/12/28 06:18

phpinfoが長すぎたためconfiguration前まで載せましたがどこを載せればいいでしょうか
m.ts10806

2018/12/28 06:21

バージョンだけがわかれば良いですが、把握できたので回答しました。
guest

回答3

0

ベストアンサー

PHP 7.2.13

PHP Version 7.0.33

それでもphp 7.1以降を使うべき7つの理由:3. list()からの開放

[]による省略構文が使えるようになったのはPHP7.1からですね。

つまりkasa0さんの回答の指摘通りです。
今のPHPのバージョンのままブラウザから実行可能とするにはyambejpさんの回答のように対応します。

いずれにしてもバージョンは合わせてあったほうがトラブルが減るので
Apacheが見ているPHPのバージョンをあげるほうが良いです。

投稿2018/12/28 06:20

編集2018/12/28 06:23
m.ts10806

総合スコア80850

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

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

cometbeet

2018/12/28 06:26

色々お騒がせしてすみませんでした。 ubuntu16なのでリポジトリを追加してインストールしただけなのでターミナルのみphp7.2になってapach2のバージョンは上がってなかったのかと思います。 設定する場所を探してapache2で呼び出す場所を変えてターミナルとバージョン合わせようかと思います。 回答ありがとうございます。
m.ts10806

2018/12/28 06:27

ターミナル実行はApache関係ないので要注意ですね。 双方のバージョンが提示してあればもっと早く解決に向かったかもしれません…
cometbeet

2018/12/28 06:29

確かにそうすればこれほど時間はかかりませんでしたね… こういう時どこを見ればいいのかまだ理解が足らなかったのでいい勉強になりました。
m.ts10806

2018/12/28 06:34

ひとまず解決されたようで何よりです
papinianus

2018/12/28 06:44

横から失礼。canonicalが独自にサポートしてるのでなければ、php7.0はセキュリティサポート切れてます。そのへんもご意識ください(php5.6は年内生きてますが)
guest

0

ターミナルでは正常に実行できたということは、Apacheから呼び出されるPHPのバージョンが古いのではないでしょうか。

投稿2018/12/28 02:30

kasa0

総合スコア578

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

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

m.ts10806

2018/12/28 02:57

これですね。PHP5.6だとエラーが出ました。エラー内容が違いますけど。 もっと古いバージョンかもしれませんね。
guest

0

php7に移行していないので詳細はわかりませんがエラーを回避するだけならこう

PHP

1$array1 = ['今日', '天気', '晴れ', '雨']; 2$array2 = ['の', 'は', 'のち', 'です']; 3 4foreach(array_map(null, $array1, $array2) as list($val1,$val2)){ 5 echo "$val1$val2"; 6}

投稿2018/12/28 01:32

yambejp

総合スコア114775

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問