この教材は、新しい形式に移動しました。移動先はこちら
https://legacy.toiee.jp/pkt-prog-entry-how-to-learn-rule/
ポケてら : 探求、発見、驚き、楽しさ
プログラミング言語は、それぞれ厳格なルールがあります。それらのルールは、言語設計者やその言語の用途によって、少しずつ違います。ここでは、本当に簡単なプログラムを扱って、言語特有の文法の学び方を学びます。
以下のコードを実行すると、どんな結果が出るでしょうか?ノーヒントですが、英単語の意味などから推測してみましょう。そして、結果は「どんなものか?」を詳細に予想しましょう。
<?php
echo "Hello World!!";
結果をどのように解釈したら良いでしょうか?その解釈を確かめる実験を考え、試してみることが重要です。
プログラムは、コンピュータに何かをさせることです。コンピュータが行うことは「計算」です。計算で使うものは「データ」です。データとは「数字」や「文字」のことです。
つまり、コンピュータの中での出来事は「数字や文字」に、何らかの処理をしていくことです。
数字や文字などの「データ」は、必ず「入れ物(箱)」に入れて、保持しておかないと、なくなってしまいます。そこでプログラミングの世界では、「箱」を用意して、箱を使って、データ処理手順を用意します。$a;
と書くと、箱を用意したことになります。
この箱のことを「変数」と言います。
以上の説明から、以下のコードを実行したら、どんなことが起こるでしょうか?
<?php
$a;
結果を踏まえて、どのように理解すれば良いでしょうか?
絵を描いて考えてみましょう。
文法を覚えるのではなく、「文法の学び方を学ぶ」ことが目的です。無理に覚えようとしなくても、使っていると勝手に覚えます。そして、ルールに意識が向いていると、覚える速度が上がっていきます。
\n
は「改行」を意味します。echo
は改行は出力しませんので、改行をわざわざ書かないと改行しません。改行文字以外にも \t
はタブなどと決まっています。詳しくは、「文字列・エスケープ文字」をご覧ください。
※ Mac の場合、\
は、「optionキー」を押しながら、「¥円マーク」です
<?php
echo "Hello World!\n";
\n\n
と書いてみる、echo をもう一つ追加するなど、サンプルコードを変更して、探求しましょう。
シングルクォーテーションは「Shiftキーを押しながら7です」。ダブルクォーテーションではなく、シングルクォーテーションだったら、どうなるでしょうか?
<?php
echo 'ハロー・ワールド\n';
シングルクォーテーションだと、\n
などの特殊な文字は、どうなるでしょうか?
変数の中身を出力する方法は、以下の通りです。
<?php
$a = 1000;
echo $a;
他にも、
<?php
$a = 1000;
echo "$a です";
シングルクォーテーションだったら、どうなるでしょうか?
var_dump
という関数(道具)があります。この道具は、変数の中に何が、どのように入っているか?を知るためのものです。以下のように書いて、出力してみましょう。
<?php
$a = 1000;
var_dump( $a );
また、以下のようにも出力してみましょう。
<?php
$a = '1000';
var_dump( $a );
違いから、どんなことがわかるでしょうか?英語の単語の意味などを調べて、自分なりに仮説を立てましょう。また、書籍やインターネットの記事を見て、調査しても構いません。
文法を学ぶ方法に注意を払いましょう。書籍を参考にしたり、インターネットの記事を参考にしたり、言語リファレンスを参考にして試してみましょう。
<?php
$a = 1000;
$a = 3000;
var_dump( $a );
プログラムは、1行ずつ実行されます。最終的には、何が出力されるでしょうか?でも、途中では、どんなことが起こっているでしょうか?それを確かめるには、どうしたら良いでしょうか(どうコードを書き換えれば良いでしょうか?)
<?php
$a;
var_dump( $a );
Paiza でなければ、エラーではなく NULL
が表示されます。このように「箱に何も入れずに使う」のは、よくないことです(理由は、そのうちわかります)。
<?php
$a = 100 + 200;
var_dump( $a );
=
の右側から順番に処理されるという「ルール」です。さて、どんなことが起こるでしょうか?
<?php
$a = 100;
$b = 200;
$c = $a + $b;
var_dump( $c );
実行結果は、どうなるでしょうか?
<?php
$a = 100;
$b = 200;
$a = $a + $b;
var_dump( $a );
変数(箱)には、入れられるものによって種類が分かれます。例えば、「整数」を入れる場合は、 int型の箱、文字列を入れる場合は String型の箱、小数点なら float型と、様々に決まっています。
型が決まっているべき理由は、そのうちわかります(安全性のためです)。
どんな箱があるでしょうか?
どんなことが起こるでしょうか?
<?php
$a = '1000';
$b = $a + 100;
var_dump( $b );
<?php
$a = 0.05
var_dump( $a );
$b = 1000;
var_dump( $b );
$c = 'hello';
var_dump( $c );
<?php
$a = 1000;
$b = $a + 'hello';
var_dump( $b );
<?php
$a = 1000;
$b = $a . ' hello';
var_dump( $b );
.
は、文字を結合(連結)する命令です。
<?php
$a = 1000;
$b = 1000;
$n = $a + $b;
var_dump( $n );
$s = $a . $b;
var_dump( $s );
あくまでも「文法を学ぶ力をつける」という意識で、インターネットの記事や、PHPの言語リファレンスを読んで、色々と試してみましょう。
関連ナレッジはありません。