すごく初歩的な質問になるのですが、
PHPはwebサーバーで読み取るという認識で正しいのでしょうか?
その場合、自分のphpのバージョンと
相手のwebサーバーのphpのバージョンがあっていないと
動かないことがあるということでしょうか?
馬鹿馬鹿しい質問かもしれませんが、
ご回答いただければ幸いです。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
PHPはサーバーサイドスクリプトですので、
例えばindex.phpにアクセスした場合はサーバー上でphpプログラムが実行されます。
wikipedia サーバーサイドスクリプト
https://ja.wikipedia.org/wiki/サーバーサイド・スクリプト
ですので、閲覧者側にPHPがインストールされている必要はありません。
開発する際は動作予定のサーバーのPHPバージョンを確認し開発をしていきます。
PHPのバージョンによっては配列の書き方などの違いがありますので、
念入りに確認することをお勧めします。
投稿2017/08/18 07:24
総合スコア34
0
その場合、自分のphpのバージョンと
相手のwebサーバーのphpのバージョンがあっていないと
動かないことがあるということでしょうか?
PHPを2つの意味で混同してるみたいだね。
そこをちゃんと切り分けて考えていこう。
まずPHPはスクリプト言語と呼ばれるジャンルのプログラミング言語だ。
そして対になるのが文字列で構成される単なるテキストデータである「ソースコード」。
「PHPの実行ファイル」にソースコードを読み込ませる事で、初めて書かれている内容を実行することが出来る。
一般的にPHPと呼んだ場合は「PHPの実行ファイル」を指す事が多く、
PHPに流し込むコードは「PHPファイル」や「ソースコード」と呼んで使い分ける。
自分のphpのバージョン
この「自分のphpのバージョン」というのはなんだろう?
上記を踏まえて以下のように解釈してみたけど相違ないかな?
自分のphpバージョンとは「PHPのソースコード」を指す。
自分のマシン(ローカル開発環境)にXAMMP等のApache+PHPの動作環境を用意し、
そのApache+PHPで少しずつテストしながら書き上げたもの。
相手のwebサーバーのphpのバージョン
他の回答者さんのコメントを見たけど、
これは会社に入っているPHPのバージョンのことだね。
質問者さんが会社のマシンに設置した「自分の環境で作ったPHPのソースコード」は
「PHPの実行ファイル」のバージョンが元になって動作するわけだね。
なので「自分のマシンのPHPやソースコード」は一切関係がない。
そしてWebサーバーとして全世界に公開するマシンは会社のマシンになるんだよね。
お客様はこっちにアクセスするわけだし。
動かないことがあるということでしょうか?
ある。
PHPはバージョンが上がると便利な関数や機能が追加され、
効率の悪く不便だったり不具合のある関数や機能は削除される。
(PHP以外のプログラミング言語も同様で、常にどのバージョンで書かれているソースコードかを把握する必要がある)
質問者さんは例えば自分のマシンでPHP5.6の環境で検証しながら「ソースコード」を書き上げる。
そのソースコードを会社のPHP7.0が入っているWebサーバーに設置すると、
意図しない動作をしたり、エラーが出て動作しないというケースが発生しうる。
逆もしかり。
会社のPHPのバージョンが古いと「そんな関数存在しねーよ、エラー」で落とされるケースも発生しうる。
バージョンが上がると何が追加され、何が削除されるかはPHPマニュアルの付録に全て記載されている。
ただし、PHPは下位互換を重視する文化なので、昨日まで使えてた機能が言語のアップデートでいきなり殺される事はない。
一度「この関数は非推奨になったので数年先のアップデートでなくなります。代替として用意した別機能使ってね」という風にアナウンスしてくれる。
投稿2017/08/19 01:45
総合スコア21158
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
Web サーバと php の関わり方は、以下に説明があります。
一方、Web サーバーと PHP を自分でセットアップする場合、 サーバーに PHP を組み込む方法が 2 種類あります。 多くのサーバーに対して、各サーバー独自のモジュールインターフェイス (SAPI とも呼ばれます) を通じて、ダイレクトに PHP を動作させることができます。 Apache、Microsoft Internet Information Server、 Netscape、iPlanet サーバーなどがサポートされています。 ISAPI と呼ばれるマイクロソフト互換のモジュールインターフェイスを 持つ Web サーバー(OmniHTTPd など)もサポートされます。 PHP がモジュールのサポートをしていない Web サーバーに対しては、 CGI もしくは FastCGI プロセサとして PHP を使用することができます。 つまり、PHP ファイルへのリクエストの処理を、 PHP のコマンドライン版の実行ファイルを使って行うよう Web サーバーを設定することができます。
php は HTML を出力し、Web サーバはそれを http(s) としてブラウザにレスポンスします。
参考
あなたのサイトの PHPは,CGI方式ですか? Module方式ですか?
こちらのサイトは、php の動作モードによる挙動の違いを示しているので、本論との関わりは薄いのですが、ブラウザからのリクエストがどのように php に関わり、web サーバがレスポンスするのかという点を説明するのに適当な図が掲載されています。
図を見ることで理解が深まるかと。
投稿2017/08/18 21:32
編集2017/08/18 21:34退会済みユーザー
総合スコア0
0
webサーバー上で、webサーバープログラム
(例えばapache httpdやNginxなど)が動いていて、
webブラウザなどのクライアントプログラムからのリクエストによって、
webサーバープログラムからphpなどのプログラムを実行して
その出力をwebクライアントに送信するようになっています。
リクエストがあるたびにphpなどを実行するプログラムが都度立ち上がる方式もあれば、
webサーバープログラム内にphpなどの実行エンジンを組み込んでいる場合もあります。
phpを実行するプログラムのバージョンが有り、
バージョンによって文法が若干変わってしまったり、
一部関数やライブラリも変わっていたりしますので、
動作確認が欠かせません。
PHP 7.0.x から PHP 7.1.x への移行
PHP 5.6.x から PHP 7.0.x への移行
PHP 5.5.x から PHP 5.6.x への移行
PHP 5.4.x から PHP 5.5.x への移行
PHP 5.3.x から PHP 5.4.x への移行
PHP 5.2.x から PHP 5.3.x への移行
PHP 5.1.x から PHP 5.2.x への移行
PHP 5.0.x から PHP 5.1.x への移行
PHP 4 から PHP 5.0.x への移行
ってくらい、変更点をまとめている公式ドキュメントもありますので、
先方のphpのバージョンになるべく揃えて
自前の開発環境のバージョンを決めると良いと思います。
投稿2017/08/18 08:00
退会済みユーザー
総合スコア0
0
webサーバーと書いてるのでwebページでよくあるindex.php(拡張子がphp)の話と想定してですが、
webサーバーでphpで記述されたプログラムを実行して、結果だけをクライアントに返すというイメージです。
ので、この場合においては自分のphp(自身のPCにPHPが入ってるって言うことかな)は関係ありません。
※開発においては当然ながらテスト環境やら開発環境と本番環境のphpのバージョンを合わせないと動かないことはあります(php・・・最近は少なくなった気もしますがマイナーバージョン違いでも動作が違ったりはあります)
投稿2017/08/18 07:22
総合スコア5545
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/21 05:35