詳解PHP中時(shí)間處理類(lèi)Carbon常用方法的使用
1.String Formatting
所有類(lèi)似 toXXXString() 這樣的方法都依賴(lài)于DateTime::format()。__toString() 方法允許 Carbon 實(shí)例被打印時(shí)以一種可讀性更好的方式被打印出來(lái)。
$dt = Carbon::create(1975, 12, 25, 14, 15, 16); var_dump($dt->toDateTimeString() == $dt); // bool(true) => uses __toString() echo $dt->toDateString(); // 1975-12-25 echo $dt->toFormattedDateString(); // Dec 25, 1975 echo $dt->toTimeString(); // 14:15:16 echo $dt->toDateTimeString(); // 1975-12-25 14:15:16 echo $dt->toDayDateTimeString(); // Thu, Dec 25, 1975 2:15 PM // ... of course format() is still available echo $dt->format('l jS \\of F Y h:i:s A'); // Thursday 25th of December 1975 02:15:16 PM
另外可以默認(rèn)設(shè)置 __toString() 方法所要顯示的時(shí)間日期格式。
Carbon::setToStringFormat('jS \o\f F, Y g:i:s a'); echo $dt; // 25th of December, 1975 2:15:16 pm Carbon::resetToStringFormat(); echo $dt; // 1975-12-25 14:15:16
如果需要設(shè)定特定的語(yǔ)言顯示,請(qǐng)參考 Localization 部分。
2.Common Formats
下面是對(duì) DateTime 類(lèi)提供的通用格式的一些封裝。
$dt = Carbon::now(); // $dt->toAtomString() is the same as $dt->format(DateTime::ATOM); echo $dt->toAtomString(); // 1975-12-25T14:15:16-05:00 echo $dt->toCookieString(); // Thursday, 25-Dec-1975 14:15:16 EST echo $dt->toIso8601String(); // 1975-12-25T14:15:16-0500 echo $dt->toRfc822String(); // Thu, 25 Dec 75 14:15:16 -0500 echo $dt->toRfc850String(); // Thursday, 25-Dec-75 14:15:16 EST echo $dt->toRfc1036String(); // Thu, 25 Dec 75 14:15:16 -0500 echo $dt->toRfc1123String(); // Thu, 25 Dec 1975 14:15:16 -0500 echo $dt->toRfc2822String(); // Thu, 25 Dec 1975 14:15:16 -0500 echo $dt->toRfc3339String(); // 1975-12-25T14:15:16-05:00 echo $dt->toRssString(); // Thu, 25 Dec 1975 14:15:16 -0500 echo $dt->toW3cString(); // 1975-12-25T14:15:16-05:00
3.Comparison
通過(guò)以下方式可以對(duì)兩個(gè) Carbon 實(shí)例進(jìn)行簡(jiǎn)單的比較。牢記這些比較都是在UTC時(shí)區(qū)下完成的。
echo Carbon::now()->tzName; // America/Toronto $first = Carbon::create(2012, 9, 5, 23, 26, 11); $second = Carbon::create(2012, 9, 5, 20, 26, 11, 'America/Vancouver'); echo $first->toDateTimeString(); // 2012-09-05 23:26:11 echo $first->tzName; // America/Toronto echo $second->toDateTimeString(); // 2012-09-05 20:26:11 echo $second->tzName; // America/Vancouver var_dump($first->eq($second)); // bool(true) var_dump($first->ne($second)); // bool(false) var_dump($first->gt($second)); // bool(false) var_dump($first->gte($second)); // bool(true) var_dump($first->lt($second)); // bool(false) var_dump($first->lte($second)); // bool(true) $first->setDateTime(2012, 1, 1, 0, 0, 0); $second->setDateTime(2012, 1, 1, 0, 0, 0); // Remember tz is 'America/Vancouver' var_dump($first->eq($second)); // bool(false) var_dump($first->ne($second)); // bool(true) var_dump($first->gt($second)); // bool(false) var_dump($first->gte($second)); // bool(false) var_dump($first->lt($second)); // bool(true) var_dump($first->lte($second)); // bool(true)
如果要判斷當(dāng)前實(shí)例對(duì)應(yīng)的時(shí)間,是否在其他兩個(gè)實(shí)例對(duì)應(yīng)的時(shí)間之間,可以用 between() 方法。如果提供了第三個(gè)參數(shù),并且為 true,將會(huì)進(jìn)行 >= 和 <= 的操作。如果為 false,會(huì)進(jìn)行 > 和 < 的操作。該參數(shù)默認(rèn)是 true 。
$first = Carbon::create(2012, 9, 5, 1); $second = Carbon::create(2012, 9, 5, 5); var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second)); // bool(true) var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second)); // bool(true) var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false)); // bool(false)
還記得 min() 和 max() 嗎?min() 將會(huì)返回兩個(gè)實(shí)例中時(shí)間較早的實(shí)例,max() 返回時(shí)間較晚的那個(gè)。如果沒(méi)有提供給 min() 或 max() 任何參數(shù),將會(huì)拿當(dāng)前時(shí)間和調(diào)用該方法的實(shí)例進(jìn)行比較。
$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0); $dt2 = Carbon::create(2014, 1, 30, 0, 0, 0); echo $dt1->min($dt2); // 2012-01-01 00:00:00 $dt1 = Carbon::create(2012, 1, 1, 0, 0, 0); $dt2 = Carbon::create(2014, 1, 30, 0, 0, 0); echo $dt1->max($dt2); // 2014-01-30 00:00:00 // now is the default param $dt1 = Carbon::create(2000, 1, 1, 0, 0, 0); echo $dt1->max(); // 2016-06-24 15:18:34
Carbon 提供了一些見(jiàn)名知意的輔助方法去處理大部分用到的場(chǎng)景。需要執(zhí)行比較操作的方法都會(huì)與當(dāng)前時(shí)區(qū)的當(dāng)前時(shí)間進(jìn)行比較。
$dt = Carbon::now(); $dt->isWeekday(); $dt->isWeekend(); $dt->isYesterday(); $dt->isToday(); $dt->isTomorrow(); $dt->isFuture(); $dt->isPast(); $dt->isLeapYear(); $dt->isSameDay(Carbon::now()); $born = Carbon::createFromDate(1987, 4, 23); $noCake = Carbon::createFromDate(2014, 9, 26); $yesCake = Carbon::createFromDate(2014, 4, 23); $overTheHill = Carbon::now()->subYears(50); var_dump($born->isBirthday($noCake)); // bool(false) var_dump($born->isBirthday($yesCake)); // bool(true) var_dump($overTheHill->isBirthday()); // bool(true) -> default compare it to today!
4.Addition and Subtraction
默認(rèn)的DateTime類(lèi)提供了一對(duì)方便增加和減少時(shí)間的方法。有 modify(),add() 和 sub() 。modify() 方法接受一個(gè)標(biāo)準(zhǔn)的 data/time 字符串,該方法會(huì)對(duì)字符串進(jìn)行解析,當(dāng)牽扯到 add() 和 sub() 時(shí)會(huì)隱式調(diào)用DateInterval類(lèi)進(jìn)行處理。用鏈?zhǔn)秸{(diào)用的方式進(jìn)行操作,代碼將會(huì)更加的清晰和易讀。當(dāng)然,由于繼承關(guān)系這并不會(huì)影響你使用底層的方法進(jìn)行操作。
$dt = Carbon::create(2012, 1, 31, 0); echo $dt->toDateTimeString(); // 2012-01-31 00:00:00 echo $dt->addYears(5); // 2017-01-31 00:00:00 echo $dt->addYear(); // 2018-01-31 00:00:00 echo $dt->subYear(); // 2017-01-31 00:00:00 echo $dt->subYears(5); // 2012-01-31 00:00:00 echo $dt->addMonths(60); // 2017-01-31 00:00:00 echo $dt->addMonth(); // 2017-03-03 00:00:00 equivalent of $dt->month($dt->month + 1); so it wraps echo $dt->subMonth(); // 2017-02-03 00:00:00 echo $dt->subMonths(60); // 2012-02-03 00:00:00 echo $dt->addDays(29); // 2012-03-03 00:00:00 echo $dt->addDay(); // 2012-03-04 00:00:00 echo $dt->subDay(); // 2012-03-03 00:00:00 echo $dt->subDays(29); // 2012-02-03 00:00:00 echo $dt->addWeekdays(4); // 2012-02-09 00:00:00 echo $dt->addWeekday(); // 2012-02-10 00:00:00 echo $dt->subWeekday(); // 2012-02-09 00:00:00 echo $dt->subWeekdays(4); // 2012-02-03 00:00:00 echo $dt->addWeeks(3); // 2012-02-24 00:00:00 echo $dt->addWeek(); // 2012-03-02 00:00:00 echo $dt->subWeek(); // 2012-02-24 00:00:00 echo $dt->subWeeks(3); // 2012-02-03 00:00:00 echo $dt->addHours(24); // 2012-02-04 00:00:00 echo $dt->addHour(); // 2012-02-04 01:00:00 echo $dt->subHour(); // 2012-02-04 00:00:00 echo $dt->subHours(24); // 2012-02-03 00:00:00 echo $dt->addMinutes(61); // 2012-02-03 01:01:00 echo $dt->addMinute(); // 2012-02-03 01:02:00 echo $dt->subMinute(); // 2012-02-03 01:01:00 echo $dt->subMinutes(61); // 2012-02-03 00:00:00 echo $dt->addSeconds(61); // 2012-02-03 00:01:01 echo $dt->addSecond(); // 2012-02-03 00:01:02 echo $dt->subSecond(); // 2012-02-03 00:01:01 echo $dt->subSeconds(61); // 2012-02-03 00:00:00
當(dāng)然你也可以傳遞負(fù)值到addXXX()方法,實(shí)際這正是subXXX()方法所實(shí)現(xiàn)的功能。
5.Difference
以下方法總是返回兩個(gè)實(shí)例之間的時(shí)間差。與基類(lèi)中的 diff() 方法不同的是,diff() 方法會(huì)通過(guò)DateInterval實(shí)例將61秒轉(zhuǎn)化成1分1秒來(lái)返回。下邊的這些方法第一個(gè)參數(shù)是將會(huì)用來(lái)比較的 Carbon 實(shí)例,默認(rèn)為 now() 方法創(chuàng)建的當(dāng)前時(shí)間實(shí)例。第二個(gè)參數(shù)也是可選的,指明了你是否需要返回一個(gè)比較結(jié)果的絕對(duì)值,默認(rèn)為 true,當(dāng)?shù)诙€(gè)參數(shù)為 false,并且用于比較的實(shí)例時(shí)間早于被比較的實(shí)例時(shí),返回負(fù)數(shù)。所有的比較操作都在UTC時(shí)區(qū)下完成。
// Carbon::diffInYears(Carbon $dt = null, $abs = true) echo Carbon::now('America/Vancouver')->diffInSeconds(Carbon::now('Europe/London')); // 0 $dtOttawa = Carbon::createFromDate(2000, 1, 1, 'America/Toronto'); $dtVancouver = Carbon::createFromDate(2000, 1, 1, 'America/Vancouver'); echo $dtOttawa->diffInHours($dtVancouver); // 3 echo $dtOttawa->diffInHours($dtVancouver, false); // 3 echo $dtVancouver->diffInHours($dtOttawa, false); // -3 $dt = Carbon::create(2012, 1, 31, 0); echo $dt->diffInDays($dt->copy()->addMonth()); // 31 echo $dt->diffInDays($dt->copy()->subMonth(), false); // -31 $dt = Carbon::create(2012, 4, 30, 0); echo $dt->diffInDays($dt->copy()->addMonth()); // 30 echo $dt->diffInDays($dt->copy()->addWeek()); // 7 $dt = Carbon::create(2012, 1, 1, 0); echo $dt->diffInMinutes($dt->copy()->addSeconds(59)); // 0 echo $dt->diffInMinutes($dt->copy()->addSeconds(60)); // 1 echo $dt->diffInMinutes($dt->copy()->addSeconds(119)); // 1 echo $dt->diffInMinutes($dt->copy()->addSeconds(120)); // 2 echo $dt->addSeconds(120)->secondsSinceMidnight(); // 120
一些特殊的過(guò)濾方法,像 diffInDaysFiltered() 、diffInHoursFiltered() 和 diffFiltered() ,可以幫助你過(guò)濾時(shí)間差中的 days 、hour 或者一個(gè)自定義的時(shí)間間隔。下邊是統(tǒng)計(jì)兩個(gè)實(shí)例之間的周末天數(shù)。
$dt = Carbon::create(2014, 1, 1); $dt2 = Carbon::create(2014, 12, 31); $daysForExtraCoding = $dt->diffInDaysFiltered(function(Carbon $date) { return $date->isWeekend(); }, $dt2); echo $daysForExtraCoding; // 104 $dt = Carbon::create(2014, 1, 1)->startOfDay(); $dt2 = $dt->copy()->endOfDay(); $littleHandRotations = $dt->diffFiltered(CarbonInterval::minute(), function(Carbon $date) { return $date->minute === 0; }, $dt2); echo $littleHandRotations; // 24 // others that are defined // diffInYears(), diffInMonths(), diffInWeeks() // diffInDays(), diffInWeekdays(), diffInWeekendDays() // diffInHours(), diffInMinutes(), diffInSeconds() // secondsSinceMidnight(), secondsUntilEndOfDay()
6.Difference for Humans
對(duì)于人們來(lái)說(shuō),一月前比30天前更加易與理解。這是一個(gè)常見(jiàn)的方法在許多日期處理類(lèi)庫(kù)中,所以他想也應(yīng)該把這個(gè)加進(jìn)來(lái)。這里把一個(gè)月看做四周,這些方法需要一個(gè)可選的 Carbon 實(shí)例作為參數(shù)來(lái)進(jìn)行比較,默認(rèn)為當(dāng)前時(shí)間的實(shí)例。
這些方法會(huì)在兩個(gè)時(shí)間差值后增加一寫(xiě)描述,可能類(lèi)似下邊這四種:
When comparing a value in the past to default now:
- 1 hour ago
- 5 months ago
When comparing a value in the future to default now:
- 1 hour from now
- 5 months from now
When comparing a value in the past to another value:
- 1 hour before
- 5 months before
When comparing a value in the future to another value:
- 1 hour after
- 5 months after
你也可以傳遞第二個(gè)參數(shù)去掉類(lèi)似 ago,from now 這種修飾符,類(lèi)似這樣的用法 diffForHumans(Carbon $other, true) 等。
// The most typical usage is for comments // The instance is the date the comment was created and its being compared to default now() echo Carbon::now()->subDays(5)->diffForHumans(); // 5 days ago echo Carbon::now()->diffForHumans(Carbon::now()->subYear()); // 1 year after $dt = Carbon::createFromDate(2011, 8, 1); echo $dt->diffForHumans($dt->copy()->addMonth()); // 1 month before echo $dt->diffForHumans($dt->copy()->subMonth()); // 1 month after echo Carbon::now()->addSeconds(5)->diffForHumans(); // 5 seconds from now echo Carbon::now()->subDays(24)->diffForHumans(); // 3 weeks ago echo Carbon::now()->subDays(24)->diffForHumans(null, true); // 3 weeks
你也通過(guò)在 diffForHumans() 被調(diào)用前,使用 Carbon::setLocale(‘fr’) 來(lái)改變語(yǔ)言設(shè)置。詳細(xì)請(qǐng)參考 localization 部分。
7.Modifiers
Carbon argument.這些方法組對(duì)修改當(dāng)前實(shí)例很有幫助。你會(huì)注意到 startOfXXX(),next(),和 previous() 方法將會(huì)設(shè)置時(shí)間為 00:00:00,另外 endOfXXX() 方法將會(huì)設(shè)置時(shí)間為 23:59:59 。
$dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->startOfDay(); // 2012-01-31 00:00:00 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->endOfDay(); // 2012-01-31 23:59:59 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->startOfMonth(); // 2012-01-01 00:00:00 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->endOfMonth(); // 2012-01-31 23:59:59 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->startOfYear(); // 2012-01-01 00:00:00 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->endOfYear(); // 2012-12-31 23:59:59 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->startOfDecade(); // 2010-01-01 00:00:00 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->endOfDecade(); // 2019-12-31 23:59:59 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->startOfCentury(); // 2000-01-01 00:00:00 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->endOfCentury(); // 2099-12-31 23:59:59 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->startOfWeek(); // 2012-01-30 00:00:00 var_dump($dt->dayOfWeek == Carbon::MONDAY); // bool(true) : ISO8601 week starts on Monday $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->endOfWeek(); // 2012-02-05 23:59:59 var_dump($dt->dayOfWeek == Carbon::SUNDAY); // bool(true) : ISO8601 week ends on Sunday $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->next(Carbon::WEDNESDAY); // 2012-02-01 00:00:00 var_dump($dt->dayOfWeek == Carbon::WEDNESDAY); // bool(true) $dt = Carbon::create(2012, 1, 1, 12, 0, 0); echo $dt->next(); // 2012-01-08 00:00:00 $dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->previous(Carbon::WEDNESDAY); // 2012-01-25 00:00:00 var_dump($dt->dayOfWeek == Carbon::WEDNESDAY); // bool(true) $dt = Carbon::create(2012, 1, 1, 12, 0, 0); echo $dt->previous(); // 2011-12-25 00:00:00 $start = Carbon::create(2014, 1, 1, 0, 0, 0); $end = Carbon::create(2014, 1, 30, 0, 0, 0); echo $start->average($end); // 2014-01-15 12:00:00 // others that are defined that are similar // firstOfMonth(), lastOfMonth(), nthOfMonth() // firstOfQuarter(), lastOfQuarter(), nthOfQuarter() // firstOfYear(), lastOfYear(), nthOfYear()
8.Constants
Carbon 中定義了以下常量。
// These getters specifically return integers, ie intval() var_dump(Carbon::SUNDAY); // int(0) var_dump(Carbon::MONDAY); // int(1) var_dump(Carbon::TUESDAY); // int(2) var_dump(Carbon::WEDNESDAY); // int(3) var_dump(Carbon::THURSDAY); // int(4) var_dump(Carbon::FRIDAY); // int(5) var_dump(Carbon::SATURDAY); // int(6) var_dump(Carbon::YEARS_PER_CENTURY); // int(100) var_dump(Carbon::YEARS_PER_DECADE); // int(10) var_dump(Carbon::MONTHS_PER_YEAR); // int(12) var_dump(Carbon::WEEKS_PER_YEAR); // int(52) var_dump(Carbon::DAYS_PER_WEEK); // int(7) var_dump(Carbon::HOURS_PER_DAY); // int(24) var_dump(Carbon::MINUTES_PER_HOUR); // int(60) var_dump(Carbon::SECONDS_PER_MINUTE); // int(60)
還有
$dt = Carbon::createFromDate(2012, 10, 6); if ($dt->dayOfWeek === Carbon::SATURDAY) { echo 'Place bets on Ottawa Senators Winning!'; }
9.CarbonInterval
Carbon 類(lèi)繼承了PHP 的DateInterval類(lèi)。
<?php class CarbonInterval extends \DateInterval { // code here }
你也可以通過(guò)一下方法創(chuàng)建一個(gè)實(shí)例。
echo CarbonInterval::year(); // 1 year echo CarbonInterval::months(3); // 3 months echo CarbonInterval::days(3)->seconds(32); // 3 days 32 seconds echo CarbonInterval::weeks(3); // 3 weeks echo CarbonInterval::days(23); // 3 weeks 2 days echo CarbonInterval::create(2, 0, 5, 1, 1, 2, 7); // 2 years 5 weeks 1 day 1 hour 2 minutes 7 seconds
如果你繼承的 \DateInterval 實(shí)例來(lái)自其他類(lèi)庫(kù),別怕,通過(guò) instance() 這種友好的方式你手動(dòng)可以創(chuàng)建一個(gè) CarbonInterval 實(shí)例。
$di = new \DateInterval('P1Y2M'); // <== instance from another API $ci = CarbonInterval::instance($di); echo get_class($ci); // 'Carbon\CarbonInterval' echo $ci; // 1 year 2 months
其他的一些輔助方法,但要注意這些輔助方法處理周時(shí),只有天會(huì)被保存下來(lái)。并且是在當(dāng)前實(shí)例的總天數(shù)基礎(chǔ)上計(jì)算周。
echo CarbonInterval::year()->years; // 1 echo CarbonInterval::year()->dayz; // 0 echo CarbonInterval::days(24)->dayz; // 24 echo CarbonInterval::days(24)->daysExcludeWeeks; // 3 echo CarbonInterval::weeks(3)->days(14)->weeks; // 2 <-- days setter overwrites the current value echo CarbonInterval::weeks(3)->weeks; // 3 echo CarbonInterval::minutes(3)->weeksAndDays(2, 5); // 2 weeks 5 days 3 minutes
也有一個(gè)方便的 forHumans(),在調(diào)用 __toString() 方法時(shí),自動(dòng)執(zhí)行,并打印出可讀性更好的時(shí)間格式。
CarbonInterval::setLocale('fr'); echo CarbonInterval::create(2, 1)->forHumans(); // 2 ans 1 mois echo CarbonInterval::hour()->seconds(3); // 1 heure 3 secondes CarbonInterval::setLocale('en');
當(dāng)然,你可以通過(guò) CarbonInterval::setLocale(‘fr’) 來(lái)改變語(yǔ)言顯示。
到此這篇關(guān)于詳解PHP中時(shí)間處理類(lèi)Carbon常用方法的使用的文章就介紹到這了,更多相關(guān)PHP時(shí)間處理類(lèi)Carbon內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP實(shí)現(xiàn)的簡(jiǎn)單AES加密解密算法實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)的簡(jiǎn)單AES加密解密算法,結(jié)合具體實(shí)例形式分析了php基于mcrypt_encrypt、bin2hex、mcrypt_decrypt等方法進(jìn)行字符串加密解密的相關(guān)操作技巧,需要的朋友可以參考下2017-05-05PHP定時(shí)任務(wù)獲取微信access_token的方法
這篇文章主要介紹了PHP定時(shí)任務(wù)獲取微信access_token的方法,涉及php基于curl動(dòng)態(tài)獲取access_token及CentOS下crontab設(shè)置計(jì)劃任務(wù)的相關(guān)操作技巧,需要的朋友可以參考下2016-10-10thinkphp操作mongo數(shù)據(jù)的三種方法
這篇文章主要給大家介紹了thinkphp操作mongo數(shù)據(jù)的三種方法,使用tp中的擴(kuò)展,使用tp中的db類(lèi)和使用MongoDB PHP驅(qū)動(dòng)程序這三種方法,并通過(guò)代碼講解的非常詳細(xì),需要的朋友可以參考下2023-12-12PHP has encountered an Access Violation 錯(cuò)誤的解決方法
一般是因?yàn)閑accelerator的問(wèn)題,windows下容易出現(xiàn)這個(gè)問(wèn)題。2010-01-01PHP函數(shù)preg_match_all正則表達(dá)式的基本使用詳細(xì)解析
以下是對(duì)PHP中的函數(shù)preg_match_all正則表達(dá)式的基本使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08PHP Parser 掃描應(yīng)用打印輸出結(jié)構(gòu)語(yǔ)句實(shí)例
這篇文章主要為大家介紹了PHP Parser 掃描應(yīng)用打印輸出結(jié)構(gòu)語(yǔ)句實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09