PHP学習まとめ2

8221 ワード

34.はいれつ
    (1)$arr = array();空の配列を作成し、作成した空の配列を変数$arrに割り当てることを示します.
(2)インデックス配列:インデックス配列は指数群のキーが整数の配列であり,キーの整数順は0からである.
初期化:$friut=array("りんご"、"バナナ"、"パイナップル");
(3)インデックス配列付与
インデックス配列の割り当てには、次の3つの方法があります.
1つ目は、配列変数の名前の後ろに中括弧を付ける方法です.もちろん、インデックス配列では、中括弧内のキーは必ず整数です.例えば、$arr[0]='りんご';
 
2つ目はarray()で空の配列を作成し、=>記号を使用してキーと値を区切り、左側がキー、右側が値を表します.もちろん、インデックス配列では、キーは整数に違いありません.例えばarray('0'=>'りんご');
 
3つ目は、array()で空の配列を作成し、直接配列に英語の単一引用符'または英語の二重引用符"で値を割り当て、配列は0から始まる整数のキーをデフォルトで確立します.例えばarray('アップル');この配列はarray('0'=>'アップル')に相当します.
(4)配列コンテンツへのアクセス
$fruit0 = $fruit['0'];
変数の場合は引用符を付ける必要はありません.の
eg.$fruit[$index]
35.
foreachループアクセスインデックス配列の値
$fruit=array('りんご','バナナ','パイナップル');
foreach($fruit as $k=>$v){
echo'
第'.$k.'の値は:'.$v;
}
36.
関連配列の初期化
1つ目:$arr=array("orange"=>"オレンジ",
「orange」=>「みかん」
);
2つ目は、配列変数の名前の後ろに括弧を付ける方法です.もちろん、関連配列では、括弧内のキーは文字列に違いありません.例えば、$arr['apple']='りんご';
レプリケーション中に「」または「」を使用してもよい
関連配列の内容へのアクセス
$fruit0 = $fruit['banana'];
37.配列と変数の出力
print_r($arr0)
38.
カスタム関数
function name() {
    echo 'Eric';
}
呼び出し方法:
name()
戻り値
配列を返すことができます
function numbers()
{
    return array(1,2,3);
}
$arr=numbers(1,2,3);
39.
かへんかんすう
すなわち、変数の値が可変であるため、変数の値を変更することで、異なる関数を呼び出すことができる.
function name() {
    echo 'jobs';
}
$func = 'name';
$func();//可変関数の呼び出し
$funcで関数名で関数をバインドすると、関数名が変更されるので、対応する呼び出し
$func()は、異なる関数を実行することもできます.
40.
関数が存在するかどうかを判断する
function func() {
}
if (function_exists('func')){
    echo 'exists';
}
クラス定義でclassを使用できるかどうかexists.
class MyClass{
}
//使用前にクラスが存在するかどうかをチェック
if (class_exists('MyClass')) {
    $myclass = new MyClass();
}
ファイルが存在するかどうかfile_existsなど.
$filename = 'test.txt';
if (!file_exists($filename)) {
    echo $filename . ' not exists.';
}
41.クラスとオブジェクト
class Car {
$name='自動車';
    function getName() {
        return $this->name;
    } }
varキーワードprotectedまたはprivateが追加されていない場合、デフォルトはpublicに等しい
//carオブジェクトをインスタンス化する
$car = new Car();
$car->name='アウディA 6';//オブジェクトの属性値の設定
echo $car->getName();//オブジェクトの呼び出し方法出力オブジェクトの名前
42.
クラスの定義方法
class Car {
    public function getName() {
        return '  ';
    }
}
$car = new Car();
echo $car->getName();

キーワードstatic修飾を使用して静的メソッドと呼ばれ、静的メソッドはオブジェクトをインスタンス化する必要がなく、クラス名で直接呼び出すことができ、オペレータは2つのコロン:::.
class Car {
    public static function getName() {
        return '  ';
    }
}
echo Car::getName(); //   “  ”

43.
Static静的キーワード
静的プロパティとメソッドは、クラスをインスタンス化せずに呼び出すことができ、直接クラス名::メソッド名を使用して呼び出すことができます.静的プロパティでは、オブジェクトが->オペレータ呼び出しを使用することはできません.
静的メソッドは変数によって動的に呼び出すこともできます
$func = 'getSpeed';
$className = 'Car';
echo $className::$func();  //        
クラスおよびクラスのメソッドは、変数によって動的に呼び出すことができます.
静的メソッドでは、$this擬似変数は使用できません.self,parent,staticを使用して、静的メソッドと属性を内部で呼び出すことができます.
44,.
アクセス制御
クラス属性は、共有、保護、プライベートのいずれかとして定義する必要があります.PHP 5以前のバージョンに対応するため、var定義を採用すると公有とみなされる.
コンストラクション関数がプライベートメソッドとして定義されている場合、オブジェクトの直接インスタンス化は許可されません.この場合、一般的に静的メソッドでインスタンス化され、設計モードでは、単一のモードでグローバルに一意のオブジェクトしか許可されていないなど、オブジェクトの作成を制御する方法がよく使用されます.
class Car {
    private function __construct() {
        echo 'object create';
    }

    private static $_object = null;
    public static function getInstance() {
        if (empty(self::$_object)) {
            self::$_object = new Car(); //            ,          
        }
        return self::$_object;
    }
}
//$car = new Car(); //            
$car = Car::getInstance(); //             
44.
じゅうか
PHPでのリロードとは、ダイナミックなプロパティとメソッドの作成を指します.
(1)属性リロード:存在しない属性に値を付けて、直接動的に作成します(この動的作成はインスタンスオブジェクトに一度しか使用できませんか、それとも一度にクラスに保持できますか?)
(2)メソッドリロード
メソッドのリロードパス_Callは、呼び出しが存在しないメソッドを実装すると、パラメータ呼び出し__に変換されます.callメソッドは、存在しない静的メソッドを呼び出すときに使用されます.callStaticリロード.
class Car {
    public $speed = 0;
    
    public function __call($name, $args) {
        if ($name == 'speedUp') {
            $this->speed += 10;
        }
    }
}
$car = new Car();
$car->speedUp(); //             
echo $car->speed;
は_callメソッドで実現したい存在しないメソッドを実現する内容
45.
オブジェクトの詳細プロパティ
(1)対象比較
同じクラスの2つのインスタンスのすべての属性が等しい場合は、比較演算子==を使用して判断できます.2つの変数が同じオブジェクトの参照であるかどうかを判断する必要がある場合は、全等演算子==を使用して判断できます.
(2)オブジェクトコピー
$a = new Car();
$a->name = 'new car';
$b = clone $a;
var_dump($b);
(3)オブジェクトのシーケンス化
オブジェクトはserializeメソッドで文字列にシーケンス化され、データを格納または転送し、必要に応じてunserializeで文字列をオブジェクトに逆シーケンス化して使用できます.
$a = new Car();
$str = serialize($a); //         
echo $str.'<br>';
$b = unserialize($str); //       
var_dump($b);
 
46.
一重引用符と二重引用符の違い
一重引用符と二重引用符はいったいどんな違いがありますか?
PHPでは、二重引用符列に文字列変数を直接含めることができます.
一方、単一引用符列の内容は、通常の文字とみなされます.
例:
$str='hello';
echo "str is $str"; //    : str is hello
echo 'str is $str'; //    : str is $str

47.
文字列の先頭と末尾のスペースを削除
trimは文字列の両端のスペースを除去します.rtrimは、rがrightの略である文字列の右スペースを除去します.ltrimは、lがleftの略である文字列の左部のスペースを除去します.
48.
文字列の長さの取得
 
$len = strlen($str);
中国語を含む文字列の長さ(英語文字を含む長さ)を取得
$str = "   ";
echo mb_strlen($str,"UTF8");//  :3,   UTF8
49.
文字列の切り取り1、英語文字列の切り取り関数substr()
$str='i love you';
//  love     
echo substr($str, 2, 4);
、中国語文字列の切り取り関数mb_substr()
$str='   ,  ';

//       

echo mb_substr($str, 4, 2, 'utf8');//
50.
文字列の検索
関数の説明:strpos(処理する文字列、位置決めする文字列、位置決めの開始位置[オプション])
$str = 'I want to study at imooc';
$pos = strpos($str, 'imooc');
echo $pos;//    19,     0  ,imooc  19       
51.
置換文字列
関数の説明:str_replace(検索する文字列、置換する文字列、検索される文字列、置換カウント[オプション])
$str = 'I want to learn js';
$replace = str_replace('js', 'php', $str);
echo $replace;//    I want to learn php
52.
文字列の結合と分割
1、php文字列連結関数implode()
関数の説明:implode(セパレータ[オプション],配列)
戻り値:配列要素を文字列に結合
例:
$arr = array('Hello', 'World!');
$result = implode('', $arr);
print_r($result);//    Hello World!

2、php文字列区切り関数explode()
関数の説明:explode(セパレータ[オプション],文字列)
戻り値:関数は文字列からなる配列を返します.
例:
$str = 'apple,banana';
$result = explode(',', $str);
print_r($result);//    array('apple','banana')

53.
正規表現とは
正規表現は文字列を操作する論理式であり、いくつかの特定の文字を規則文字列に組み合わせて正規マッチングモードと呼ぶ.
$p = '/apple/';
$str = "apple banna";
if (preg_match($p, $str)) {
    echo 'matched';
}

文字列'/apple/'は、ソース文字列にapple文字列が存在するかどうかを一致させる正規表現です.
54.
正規表現の基本構文
よく使われる区切り文字は、正斜線(/)、hash記号(#)、逆記号(~)
55.
現在のUnixタイムスタンプを取得
$time=time();
//date  ,            
echo date("Y-m-d");  //      

//date  ,          
echo date("Y-m

56.
異常を投げ出す
//            
function checkNum($number){
     if($number>1){
         throw new Exception("    -        1");
     }
     return true;
 }
 
//  "try"         
 try{
     checkNum(2);
     //       ,              
     echo '         ,          1';
 }catch(Exception $e){
     //    
     echo '    : ' .$e->getMessage();
 }
getMessage()は、Exceptionに入力文字です.
一般的な方法は次のとおりです.
getTrace異常追跡情報getTraceAsString異常追跡情報を取得する文字列getMessage取得エラー情報
57.
'<br>'
PHP内の改行
58.