今回も引き続き、変数の問題なのですが、変数に代入出来る型を少し意識し始めます。
プログラムは、変数と関数で記述します。変数と関数と聞くだけでゾワゾワしてしまう人もいると思いますが、馴れるとそれほど難しくないです。
テスト勉強ではないので、気楽にプログラムを読む感覚で楽しんでみましょう。
PHPをWindowsで実行したいのであれば、XAMPP(ザンプ)をインストールすると、自分のPCでも簡単に動作させることが出来ます。
インストール方法は、以下のサイトから。
WINDOWS XAMPP にて LARAVEL をインストール (XAMPP V1.8.3インストール)
phpedu05.php
<?php $title = function($title = '中国景気減速'){ return $title; }; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>tech.pjin.jp HTML5 Template</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <!--[if lt IE 9]> <script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> <div class="page-header"> <h1><i class="fa fa-check-square"></i> PHP問題5</h1> </div> <div class="jumbotron"> <?php print $title('福山正治結婚??'); ?> </div> </div> <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> </body> </html>
※CSSには、Bootstrap、Font-Awesomeを利用しています。
※Javascriptには、jQuery1.11.3を利用しています。
問題:このPHPをブラウザで見た結果(実行結果)を答えなさい(複数選択可)
- 「$title(‘福山正治結婚??’)」と表示される。
- 「中国景気減速」と表示される。
- 「福山正治結婚??」と表示される。
- 特に何も出力されない。
- エラーが出力される。
正解:3:「福山正治結婚??」と表示される。
今回は変数 $title
に関数を代入しています。
そうです、PHPでは変数に関数を代入することが出来ます。
変数に代入出来るデータ型としては、スカラー型(単純又は基本となる型)、複合型(配列やオブジェクト)、特殊な型(リソースやnull)を代入出来ます。
スカラー型は4種類
- 論理値
- 整数
- 浮動小数点数
- 文字列
ちなみに日付型は、内部的にはlong(整数)型で管理しており、1970/01/01 00:00:00
からの相対秒数で管理しています。
プログラムで利用する型としては、文字列、数字(整数か実数)、論理値、日付くらいです。
日付に関する扱いはどの言語でも大体同じで、馴れてしまえば簡単なのですが慣れるまで時間がかかるかもしれません。
馴れても面倒だな~と感じることが多い気がします。
ここで、変数に代入した関数なのですが、データ型に記載がないのですが、関数は複合型として扱われます。
データ型を確認する際に利用するgettype()
を利用してみると、object
と表示されることが分かります。
<?php print $title('福山正治結婚??'); // 福山正治結婚?? print $title(); // defaultが適用されて、中国景気減速と表示 print gettype($title); // object ?>