収集する価値のある 20 以上の一般的な PHP ヒント (共有)
Jul 29, 2021 pm 06:47 PMこの記事では、誰もがより多くの時間を釣りに費やすことができるように、実際の 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. 秒を時、分、秒に変換
#秒を時、分、秒に変換する、- gmstrftime
- 関数、ただし、この関数は 24 時間以内の秒の変換に制限されます。
$r = gmstrftime('%H:%M:%S',(3600*23)+123); var_export($r); //输出: '23:02:03'
ログイン後にコピー
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不存在
アドレスの後にそのようなパラメーターがある場合がありますか?_=1553829159194
URL が読み取られないように毎回変更されるように、URL の後にタイムスタンプ タイムスタンプを追加します。ブラウザはそれをキャッシュしました。# #http://***/index/index?_=1553829159194
- 15. インターフェーステストツール
推奨インターフェーステストツール postman
- 16. 最後の単語が「区」の場合は削除します。
$distName = '南山区';
$lastChar = mb_substr($distName, -1);
if($lastChar=='区'){
$lastChar = mb_substr($distName, 0, -1);
}
echo $lastChar;
によって返されるデータ構造背景:
{"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);
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;
}
$data
が空です- After を返します。 object
- type,
に強制されます。 json_encode
の値は{}
です。が強制的に変換されない場合、
==[ になります。 ]==、強制的に変換する必要があるかどうかは実際の状況によって異なります$data = $data ? $data : (object)$data;
ログイン後にコピー元のアドレス: https://juejin.cn/post/6973956902094897189 (時刻から更新)まで) 著者: やる気のあるトンボ スノー イーグル
推奨学習: 「PHP ビデオ チュートリアル 」
以上が収集する価値のある 20 以上の一般的な PHP ヒント (共有)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

人気の記事

人気の記事

ホットな記事タグ

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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