#文字列
##①echoの際の文字列連結のカンマとドットの違い
出力するデータ量が十分に小さいことが確定しているとき
→ どちらかと言えば「.」を使うべき
出力するデータ量が不明,また大きいことが確定しているとき
→ 「,」を使うべき
文字列の連結コストは,データが大きいときには無視できませんが,小さいときには入出力のコストよりも小さくなる。ただ小さいときにはどちらも気にするほどではないので,好ぶこと。
参考ページ
echo $a .$b;
の場合は$aと$bを結合した文字列を作ってから出力する
文字列を、作ってガベージコレクションの対象になるほうが負荷が高い
echo $a, $b;
は$aと$bを連続して出力する
参考ページ
##""と”の違い
■シングルクォーテーション(')
この方法は連結処理はされず、ただ並べて表示させてるだけなので、処理としては一番速くなる。
目的によって使い分けますが、特に理由がなければ、,(カンマ)で並べて表示させる方がいい。
■ダブルクォーテーション(")
ダブルクォーテーション(")は文字列内に記述した変数の値を展開する。
$i = 'test';
print 'これは$i';
結果 これは$i
$i = 'test';
print "これは$i";
結果 これはtest
$i = 'test';
echo "ここは$i";
echo 'ここは' . $i;
echo "ここは" . $i;
echo 'ここは$i';
ここはtest
ここはtest
ここはtest
ここは$i
##改行
■方法①
echo "\n";
■方法②
echo '<br>';
■方法③
PHP_EOLを使う
<?php
print("the first line");
print(nl2br(PHP_EOL));
print("second line");
?>
##webフォント
uploading-0
かわいい文字にしたいときわwebフォント♥
@font-face {
font-family: あずきフォント;
src: url(azuki.ttf) format("truetype");
}
①azuki.ttfをダウンロード
②azuki.ttfをプロジェクトに追加
③azuki.ttfをサーバーにも追加
textarea {
width: 480px;
font-family: "あずきフォント";
}
webフォントで参考になるサイト
あずきフォントわここからダウンロード♥
webフォントで参考になるサイト
###webフォントをIEでも対応させる
WOFFコンバーターというフリーソフトをインストールする
WOFFコンバーター
①azuki.ttfからazuki.eotとazuki.woffをWOFFコンバーターというフリーソフトで生成
②azuki.eotとazuki.woffをプロジェクトに追加
③azuki.eotとazuki.woffをサーバーにも追加
@font-face{
font-family: 'あずきフォント'; /* お好きな名前に */
src: url('azuki.eot'); /* IE9以上用 */
src: url('azuki.eot?#iefix') format('embedded-opentype'), /* IE8以前用 */
url('azuki.woff') format('woff'), /* モダンブラウザ用 */
url('azuki.ttf') format('truetype'); /* iOS, Android用 */
}
##strval()
strval — 変数の文字列としての値を取得する
$MyNumber = 162;
echo strval($MyNumber); //162
var_dump(strval($MyNumber)); //string '162' (length=3)
var_dump($MyNumber); //int 162
##文字列と数値の比較
文字列と数値を比較する場合は、文字列が数値に比較され、数値として比較されます。その際、比較する値は文字列の先頭部分で決まる。文字列の先頭が有効な数値である場合はその値で比較し、有効な値が先頭にない場合は値が0になる。
if("3abc" == 3){
echo "true";
}else{
echo "false";
}
if("24abc" > 21){
echo "A";
}
if ("4member" > 1){
echo "B";
}
if ("3member" < 1) {
echo "C";
}
if('5member' < 44){
echo "44";
}else{
echo "5member";
}
■実行結果
trueAB44
##strcmp()
strcmp(引数1,引数2) | 引数1が引数2より大きかったら1を返す。引数1が引数2より小さかったら-1を返す。 |
if(strcmp("54321", "6789") > 0){
echo "Over";
}else{
echo "Under"; //Underが表示される
}
echo strcmp("5member", 3); // 1
echo strcmp(3, "5member"); // -1
echo strcmp("abc", "hij"); // -1
echo strcmp("k","a"); // 1
echo strcmp(2, "2member"); // -6
echo strcmp("a", "ab"); // -1
echo strcmp("a","a"); //0
何故echo strcmp("a", "ab"); // -1なるの?
##ヒアドキュメント
「ヒアドキュメント」は長い文字列を変数に代入したり、出力する場合に使う
$test=<<<A
1</br>
2</br>
3</br>
4
A;
print $test;
1
2
3
4
Aは名前自由
##= ?>
<?='hello';?>
hello
#変数
##{変数}
$weather = "晴れ";
echo "今日は{$weather}です";
echo "</br>";
echo '今日は{$weather}です';
■実行結果
今日は晴れです
今日は{$weather}です
今日は晴れです
##{$a->b()}
class hoge{
function b(){
return "c";
}
}
$a=new hoge;
print "A{$a->b()}B";
■実行結果
AcB
###++$i;と$i++;の違い
演算子 | 概要 | 例 |
---|---|---|
++ | 前置加算(代入後に加算) | $i++ |
++ | 後置加算(代入前に加算) | ++$i |
$var = 2;
echo $var ++; // 2
$i = 5;
echo ++ $i; //6
$a = 2;
echo ++$a; //3
$b = 2;
echo $b++; //2
##変数(値による代入)
$x = 1;
$y = $x;
$x = 5;
echo $y; //1
##変数(参照による代入)
参照渡しを使うにはアンパサンド「&」を使う。「&」記号を代入する方の変数の「$」記号の前に付ければいいだけ。
$x = 1;
$y = &$x;
$x = 5;
print $y; //5
##変数の有効範囲(スコープ)
グローバル | 関数外 |
ローカル | 関数内 |
$x = 10;
function checkScope() {
return ++ $x; // 1
}
print checkScope ();
print $x; // 10
##関数内でグローバル変数を利用する
■方法1
変数名の前にglobalをつけると、
その変数はローカル変数ではなくグローバル変数として扱われる
$x = 10;
function checkScope() {
global $x;
return ++ $x; // 1
}
print checkScope (); // 11
print $x; // 11
■方法2
$GLOBALS配列
$GLOBALSは、グローバル変数名がキーの連想配列なので、グローバル変数名をキーにして呼び出す。
グローバル変数$varを呼び出すには、グローバル変数名varをキーにし、$GLOBALS[var]で呼び出す。
$num = 100;
foo();
function foo(){
print $GLOBALS['num']; // 100
}