提示いただいたコードだと、最終的に出力したい文字列は↓のようなものですよね?
html
1<a href='/saikano0827.php/index.php?page_id=1'>1</a>
この文字列をそのままechoで出力してみます。
php
1echo '<a href='/saikano0827.php/index.php?page_id=1'>1</a>';
これは正しく出力されません。(エラーになります)
出力したい文字列の中に'
が含まれており、それが文字列を表すのか、echoの終了を表すのかが判別できないからです。
そのため、'
のような特別な意味を持った記号を出力するためには「エスケープ」という処理が必要になります。
エスケープは特別な意味を持つ記号の直前にバックスラッシュを入れて行います。
php
1echo '<a href=\'/saikano0827.php/index.php?page_id=1\'>1</a>';
このバックスラッシュを「エスケープシーケンス」と呼びます。
ドットは文字列をつなげるために使います。
php
1echo 'test'.'abc'; // testabc と出力される
2
3$index = 1;
4echo 'test'.$index; // test1 と出力される
エスケープシーケンスとドットを踏まえて提示されたコードを見ると、意味が分かると思います。
()
は不要だと思いますが)
php
1echo '<a href=\'/saikano0827.php/index.php?page_id='. $i. '\')>'. $i. '</a>'. ' ';
&でつなげるなら↓のような感じでしょうか。
php
1echo '<a href=\'/saikano0827.php/index.php?page_id='. $i. '&s_number2='. $numbers->getNumber() .'\'>'. $i. '</a>';
\'
の代わりに"
を使用すればもう少しシンプルになります。
'
と"
は区別され、'
内で"
はエスケープ不要だからです。
というか、HTMLの属性は通常は"
で囲みますのでこちらの方が使うことが多いです。
php
1
2echo 'test"1"test'; // test"1"test と出力される = 「"」はエスケープ不要
3
4<?php echo '<a href="/saikano0827.php/index.php?page_id='. $i. '&s_number2='. $numbers->getNumber() .'">'. $i. '</a>';?>
どちらも基礎部分ですので、まずは↓のようなサイトでPHPの基本構文を学習された方がいいかと思います。
お節介でしたらすみません。
ドットインストール : PHP入門
Progate : PHP
追記
PHP公式のドキュメントにPHPマニュアルがありますのでこちらも参考にしてください。
このマニュアルには主に関数リファレンスと言語リファレンスがあり、正確な情報はこちらに載っています。
調べ物をする際にはまずこちらを当たると良いでしょう。
今回のドットは言語リファレンス内の文字列演算子に、エスケープシーケンスは同じく言語リファレンス内の文字列に記載があります。
文法部分の学習が終われば機能や付録も読んでいくことになると思いますので、どのようなことが記載されているかぐらいは見ておいた方が良いでしょう。
(フレームワークを使用するとあまり意識しない部分かもしれませんが必須知識です)