ホームページ バックエンド開発 PHPチュートリアル 収集する価値のある 20 以上の一般的な PHP ヒント (共有)

収集する価値のある 20 以上の一般的な PHP ヒント (共有)

Jul 29, 2021 pm 06:47 PM
php

この記事では、誰もがより多くの時間を釣りに費やすことができるように、実際の PHP 開発でよく使用されるテクニックとメソッドをいくつか紹介します。

収集する価値のある 20 以上の一般的な PHP ヒント (共有)

1. クロスドメインの問題を解決する

public function __construct()
{
    parent::__construct();
    header('Access-Control-Allow-Origin:*');    //跨域
}
ログイン後にコピー

2.json_encode中国語 トランスコーディングなし

die( json_encode( $result,JSON_UNESCAPED_UNICODE ) );
ログイン後にコピー

3. 2 次元配列のソート

$users = array(
    array('name' => 'xiao1', 'age' => 20),
    array('name' => 'xiao2', 'age' => 18),
    array('name' => 'xiao3', 'age' => 22)
);
 
/*按照年龄升序*/
//要将age提取出来存储到一维数组里,然后按照age升序排列
$ages= array_column($users, 'age');
array_multisort($ages, SORT_ASC, $users);
 
/*先按照年龄升序,再按照姓名降序*/
$ages= array_column($users, 'age');
$names = array_column($users, 'name');
array_multisort($ages, SORT_ASC, $names, SORT_DESC, $users);
ログイン後にコピー

4。 Linux サーバー上の php.ini がエラー プロンプトを閉じた場合、結果は 406、500 になります。エラーメッセージを印刷します。

ini_set("display_errors", "On");
error_reporting(E_ALL | E_STRICT);
ログイン後にコピー

5. リストの使用

//list使用
public function test(){
    list($name, $sex) = $this->getInfo();
    echo "姓名:{$name},性别:{$sex}";
}
 
public function getInfo(){
    return ['张三', '男'];
}
 
//输出:姓名:张三,性别:男
ログイン後にコピー

6. 関数の使用array_column()

$array = [
    ['id'=>'99', 'name'=>'九十九'],
    ['id'=>'88', 'name'=>'八十八'],
    ['id'=>'77', 'name'=>'七十七'],
];
$arr1 = array_column($array, 'name');   
//输出:array (0 => '九十九',1 => '八十八',2 => '七十七',)
$arr2 = array_column($array, 'name', 'id'); 
//输出:array (  99 => '九十九',  88 => '八十八',  77 => '七十七',)
ログイン後にコピー
  • array_column() と array_combine()

$ids = array_column($array, 'id');
$arrayCombine = array_combine($ids, $array);
/*$arrayCombine 输出:
 array ( 
     99 => array ( 'id' => '99', 'name' => '九十九', ), 
     88 => array ( 'id' => '88', 'name' => '八十八', ), 
     77 => array ( 'id' => '77', 'name' => '七十七', ), 
 )*/
ログイン後にコピー

7 を使用します。 、1 次元配列の重複排除、0、null の削除、インデックスのリセット

#
$array = array(0,1,0,2,null,1,3,4,null,0);
$array = array_values(array_unique(array_diff($array, [0, null])));	//去除0,null;去重
var_export($array);
 
/*输出:
array (
  0 => 1,
  1 => 2,
  2 => 3,
  3 => 4,
)
*/
ログイン後にコピー

#8. 秒を時、分、秒に変換

#秒を時、分、秒に変換する、

9. インターフェイスは

インターフェイスは通常は 1 を返し、異常な場合は -1 を返します。データが空の場合は 1、-1 はパラメータ例外または論理エラーです。

10. 小数点以下第 2 位に四捨五入します。

round($x, 2);
ログイン後にコピー

11. 携帯電話番号の中の 4 桁を非表示にします。

$num = "13711111111";
$str = substr_replace($num,'****',3,4);
ログイン後にコピー

12. 改行変数 PHP_EOL使用シナリオ: 小さな改行は、実際にはさまざまなプラットフォームで機能します。は異なる実装です。

元々、/n は Unix の世界では改行を置き換えるために使用されますが、その違いを反映するために Windows では /r/n が使用されます。さらに興味深いのは、Mac では /r が使用されることです。

PHP_EOL は php で定義されている変数で、php の改行文字を表します。

この変数はプラットフォームに応じて変わります。Windows では /r/n、Linux では /n、Mac では /r になります。

#13. PHP は、配列キーが存在するかどうかを判断します isset()、array_key_exists()、empty()

$array = ['a'=>'我是第一个', 'b'=>'我是第二个', 'c'=>'我是第三个', 'f' => null];
if(isset($array['a'])) {
    echo 'a存在 ';
} else {
    echo 'a不存在 ';
}

if(array_key_exists('d', $array)) {
    echo 'd存在 ';
} else {
    echo 'd不存在 ';
}

if (empty($array['f'])) {
    echo 'f不存在';
} else {
    echo 'f存在,且不为 null,0,"0",false';
}
 
//a存在 d不存在 f不存在
ログイン後にコピー

14. パラメーター付きの js ファイルをインポートします?_=1553829159194

アドレスの後にそのようなパラメーターがある場合がありますか?_=1553829159194

# #http://***/index/index?_=1553829159194

URL が読み取られないように毎回変更されるように、URL の後にタイムスタンプ タイムスタンプを追加します。ブラウザはそれをキャッシュしました。
  • 15. インターフェーステストツール

推奨インターフェーステストツール postman

  • 16. 最後の単語が「区」の場合は削除します。

$distName = '南山区';
$lastChar = mb_substr($distName, -1);
if($lastChar=='区'){
    $lastChar = mb_substr($distName, 0, -1);
}
echo $lastChar;
ログイン後にコピー
17. ページのコンテンツが次のとおりであると仮定します:

によって返されるデータ構造背景:

{"eat":["大米","小麦"],"drink":["水","茶"]}
ログイン後にコピー
  • これは良くないので、フロントエンドは関連するフィールドに対応する必要があります。食べる場合は Eat、飲む場合は Drink です。
  • 次のように返すのが最善です:

  • [{"name":"吃的","list":["大米","小麦"]},{"name":"喝的","list":["水","茶"]}]
    ログイン後にコピー

  • 18. 0777 ディレクトリを作成し、mkdir と chmod を使用します。 together

Windows では mkdir を使用してフォルダーを作成する場合は問題ありませんが、Linux で mkdir を使用してフォルダーを作成する場合、最大権限は 0777 になります。再度 chmod 関数を使用する必要があります (chmod 関数は Linux 用に作成されています。フォルダー権限が不十分です)

//若目录不存在则创建目录
$filePath = '../file/20900101';
if(@!file_exists($filePath)){
    mkdir($filePath, 0777, true);
    chmod($filePath, 0777);
}
ログイン後にコピー
  • 19. foreach での参照割り当て

コード

$temp = [
            [ 'id' => 1, 'name' => 'name1', 'age' => 'age1', 'time' => 'time1' ],
            [ 'id' => 2, 'name' => 'name2', 'age' => 'age2', 'time' => 'time2' ]
        ];

# 清空原数据
$data = $temp;
foreach ($data as &$value){
    $value = [];
}
echo '<pre>';
print_r($data);

# 重置原数据
$data = $temp;
foreach ($data as &$value){
    $value = [
        'hobby' => 1
    ];
}
print_r($data);

# 追加原数据
$data = $temp;
foreach ($data as &$value){
    $value['hobby'] = 1;
}
print_r($data);
ログイン後にコピー
  • Print
Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
        )

)
Array
(
    [0] => Array
        (
            [hobby] => 1
        )

    [1] => Array
        (
            [hobby] => 1
        )

)
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => name1
            [age] => age1
            [time] => time1
            [hobby] => 1
        )

    [1] => Array
        (
            [id] => 2
            [name] => name2
            [age] => age2
            [time] => time2
            [hobby] => 1
        )

)
ログイン後にコピー
  • 20、URLジェネレーター

public function test() {
	$url = self::getUrl('http://www.test.com', ['id' => 3, 'other' => '好的']);
	echo $url . '<br>';     //打印:http://www.test.com?id=3&other=%E5%A5%BD%E7%9A%84
	echo urldecode($url);   //打印:http://www.test.com?id=3&other=好的
}

public function getUrl($apiUrl, $param = []){
    $param = http_build_query($param);
    return $apiUrl . '?' . $param;
}
ログイン後にコピー
21 、書き込みインターフェイスの空の配列はオブジェクト フォーム

$data

が空です
    After を返します。 object
  • type, に強制されます。 json_encode の値は {} です。 が強制的に変換されない場合、==[ になります。 ]==、強制的に変換する必要があるかどうかは実際の状況によって異なります
    $data = $data ? $data : (object)$data;
    ログイン後にコピー
    元のアドレス: https://juejin.cn/post/6973956902094897189 (時刻から更新)まで) 著者: やる気のあるトンボ スノー イーグル

    推奨学習: 「PHP ビデオ チュートリアル

    以上が収集する価値のある 20 以上の一般的な PHP ヒント (共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

See all articles