目录
google无法返回您的所有旧数据 - 而是我们提供了一个开始日期和结束日期。在我的示例中,我询问了上个月的结果。
默认情况下,Google Analytics(分析)将您的所有数据组在一个称为所有会话的组中。但是,您始终可以从内置段中选择或根据您的需求创建一个新的。您可以按推荐,设备类型,年龄,性别等进行分组数据。
在本系列中,我们专注于Google Analytics(分析)的基本用法,但是您可以通过Google Analytics(分析仪表板)的选项扩展演示。
经常询问有关使用Google Analytics API V3与php
>如何开始使用PHP?
>如何使用PHP使用Google对我的应用程序进行身份验证我的应用程序?创建API凭据时,您需要使用您收到的客户ID和客户端秘密。您可以使用这些凭据来获取访问令牌,然后您可以使用该凭据来验证您的API请求。
>
>在使用php的Google Analytics API V3时如何过滤数据?
首页 后端开发 php教程 使用php的Google Analytics(分析)API V3:获取数据

使用php的Google Analytics(分析)API V3:获取数据

Feb 19, 2025 pm 12:06 PM

使用php的Google Analytics(分析)API V3:获取数据

在系列的第一部分中,我们介绍了Google Analytics(包括基本用法)。在这一部分中,我们将继续创建我们的演示,并了解如何通过更多功能扩展它。

>

钥匙要点

    >使用PHP利用Google Analytics(Analytics)API V3来有效获取和管理用户帐户数据,包括属性和视图。
  • >实现管理API以检索基于ga_service.php。
  • >利用元数据API使用Google_curlio和Google_httprequest访问和缓存分析元数据,用ETAG属性优化数据检索。
  • >通过将分类,过滤和分割选项合并到API查询中,增强数据自定义和相关性来扩展功能。>
  • 处理PHP中的身份验证,错误响应和JSON数据解析,以确保与Google Analytics(分析)API的安全有效交互。
  • > Google Analytics(分析)API
管理API

>正如我们在第一部分中讨论的那样,管理API负责获取用户帐户,属性,视图……对于我们的第一个示例,我们将检索可为身份验证的用户可用的帐户列表。

>在Ga_service ::帐户中,我们使用授权客户端创建一个新的Google_analyticsService,然后查询API中的帐户列表。

在这种情况下,结果是一个数组,但是API也利用对象,我们只需要在GA_Service :: Init函数中指定它。在以下示例中,我将使用数组结果。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<span>// app/src/GA_Service.php

</span><span>public function accounts(){

</span>   <span>if( !$this->isLoggedIn() ){

</span>       <span>//login

</span>   <span>}

</span>  

    <span>$service = new Google_AnalyticsService($this->client);

</span>   <span>$man_accounts = $service->management_accounts->listManagementAccounts();

</span>   <span>$accounts = [];

</span>

    <span>foreach ($man_accounts['items'] as $account) {

</span>       <span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ];

</span>   <span>}

</span>

    <span>return $accounts;

</span><span>}//accounts

</span>

<span>// app/controllers/HomeController.php

</span><span>public function accounts(){

</span>   <span>$accounts = $this->ga->accounts();

</span>

    <span>return $accounts;

</span><span>}//accounts

</span>

<span>// app/routes.php

</span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>

登录后复制
登录后复制
登录后复制
>

listManagementAccounts函数返回一个包含的数组:>

请注意,当您将数组作为响应返回时,Laravel会自动编码结果作为JSON响应并将其发送到浏览器。

1

<span>$this->client->setUseObjects(true);</span>

登录后复制
登录后复制
登录后复制
>该结果包含有关总结果和一些分页信息的信息。项目列包含带有其ID,权限等的帐户列表,但是我们通过项目循环以从帐户中提取ID和名称。

如果您想具有结果分页,可以始终将更多选项传递给ListManagementAccount:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<span>{

</span>    kind<span>: "analytics#accounts",

</span>    <span>username: "me@mail.com",

</span>    <span>totalResults: 3,

</span>    <span>startIndex: 1,

</span>    <span>itemsPerPage: 1000,

</span>    <span>items: [

</span>        <span>{

</span>            id<span>: "4449308",

</span>            <span>kind: "analytics#account",

</span>            <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308",

</span>            <span>name: "me@mail.com",

</span>            <span>permissions: {

</span>                effective<span>: [

</span>                    <span>"COLLABORATE",

</span>                    <span>"EDIT",

</span>                    <span>"MANAGE_USERS",

</span>                    <span>"READ_AND_ANALYZE"

</span>                <span>]

</span>            <span>},

</span>            <span>created: "2013-10-01T11:04:28.478Z",

</span>            <span>updated: "2013-10-01T11:04:28.478Z",

</span>            <span>childLink: {

</span>                type<span>: "analytics#webproperties",

</span>                <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties"

</span>            <span>}

</span>        <span>}

</span>    <span>]

</span><span>}</span>

登录后复制
登录后复制
登录后复制

>假设我们将向用户展示其帐户列表,当他们选择一个帐户列表时,我们加载了与之关联的属性列表。

> ga_service :: properties接受帐户ID,并返回该帐户的属性列表。我们基本上具有相同的过程,例如检索帐户。

>

1

<span>$service->management_accounts->listManagementAccounts( [ 'max-results' => $max_results, 'start-index' => $start_index ] );</span>

登录后复制
登录后复制

每个属性都有一个视图子集。默认情况下,Google添加了一个为每个新属性的查看称为所有网站数据。

>

使用属性列表中的ID和第一部分获取的帐户ID,我们将查询Google Analytics Api中的Aprantics API列表的给定帐户属性的可用视图列表。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

<span>// app/src/GA_Service.php

</span><span>public function accounts(){

</span>   <span>if( !$this->isLoggedIn() ){

</span>       <span>//login

</span>   <span>}

</span>  

    <span>$service = new Google_AnalyticsService($this->client);

</span>   <span>$man_accounts = $service->management_accounts->listManagementAccounts();

</span>   <span>$accounts = [];

</span>

    <span>foreach ($man_accounts['items'] as $account) {

</span>       <span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ];

</span>   <span>}

</span>

    <span>return $accounts;

</span><span>}//accounts

</span>

<span>// app/controllers/HomeController.php

</span><span>public function accounts(){

</span>   <span>$accounts = $this->ga->accounts();

</span>

    <span>return $accounts;

</span><span>}//accounts

</span>

<span>// app/routes.php

</span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>

登录后复制
登录后复制
登录后复制
在浏览器中,击中/views/{councel_id}/{property_id}路由时,我们应该得到类似的东西:

1

<span>$this->client->setUseObjects(true);</span>

登录后复制
登录后复制
登录后复制
>元数据API

要查询Google Analytics(分析)的一些统计信息,我们需要提供一组维度和指标。

    >指标:指标是您属性中用户活动的单个测量值,例如会话和浏览量。
  • >维度:尺寸分解了某些常见标准(例如国家或浏览器)的指标。
  • 要获取可用元数据的列表,您只需使用curl来查询以下url https://www.googleapis.com/analytics/v3/metadata/ga/columns。>

    google Analytics(分析)为我们提供了一个可用于缓存响应的ETAG属性,因此我们不必在每个请求上查询API。

    google_curlio:一个包裹着一些卷曲的课程,用于处理缓存,身份验证等 - 通过使用此类,我们确保使用etagattribute进行响应。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    <span>{

    </span>    kind<span>: "analytics#accounts",

    </span>    <span>username: "me@mail.com",

    </span>    <span>totalResults: 3,

    </span>    <span>startIndex: 1,

    </span>    <span>itemsPerPage: 1000,

    </span>    <span>items: [

    </span>        <span>{

    </span>            id<span>: "4449308",

    </span>            <span>kind: "analytics#account",

    </span>            <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308",

    </span>            <span>name: "me@mail.com",

    </span>            <span>permissions: {

    </span>                effective<span>: [

    </span>                    <span>"COLLABORATE",

    </span>                    <span>"EDIT",

    </span>                    <span>"MANAGE_USERS",

    </span>                    <span>"READ_AND_ANALYZE"

    </span>                <span>]

    </span>            <span>},

    </span>            <span>created: "2013-10-01T11:04:28.478Z",

    </span>            <span>updated: "2013-10-01T11:04:28.478Z",

    </span>            <span>childLink: {

    </span>                type<span>: "analytics#webproperties",

    </span>                <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties"

    </span>            <span>}

    </span>        <span>}

    </span>    <span>]

    </span><span>}</span>

    登录后复制
    登录后复制
    登录后复制
    >
      google_httprequest:是代表单个http请求的类
    • Makerequest方法返回Google_httprequest实例,我们可以使用GetResponsebody获取我们的元数据响应。
    • >
    • 现在,在访问浏览器中的 /元数据路由时,您应该获得一系列尺寸,而另一个则用于指标,并且每个尺寸都包含一个分组元素的列表。

    为了加快流程,我们将使用Bootsnipp。如果用户登录,我们将显示主页。

    >

    1

    <span>$service->management_accounts->listManagementAccounts( [ 'max-results' => $max_results, 'start-index' => $start_index ] );</span>

    登录后复制
    登录后复制

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    <span>// app/src/GA_Service.php

    </span><span>public function properties( $account_id ){

    </span>   <span>if( !$this->isLoggedIn() ){

    </span>       <span>//login

    </span>   <span>}

    </span>

        <span>try {

    </span>       <span>$service = new Google_AnalyticsService($this->client);

    </span>       <span>$man_properties = $service->management_webproperties->listManagementWebproperties($account_id);

    </span>       <span>$properties = [];

    </span>

            <span>foreach ($man_properties['items'] as $property) {

    </span>           <span>$properties[] = [ 'id' => $property['id'], 'name' => $property['name'] ];

    </span>       <span>}//foreach

    </span>

            <span>return json_encode($properties);

    </span>   <span>} catch (Google_ServiceException $e) {

    </span>       <span>return Response<span>::</span>json([

    </span>           <span>'status'    => 0,

    </span>           <span>'code'      => 3,

    </span>           <span>'message'   => $e->getMessage()

    </span>       <span>]);

    </span>   <span>}//catch

    </span>

    <span>}//properties

    </span>

    <span>// app/controllers/HomeController.php

    </span><span>public function properties( $account_id ){

    </span>   <span>$properties = $this->ga->properties( $account_id );

    </span>

        <span>return $properties;

    </span><span>}//properties

    </span>  

         

    <span>// app/routes.php

    </span><span>Route<span>::</span>get( '/properties/{account_id}', [ 'uses' => 'HomeController@properties' ] )->where('account_id', '\d+');</span>

    登录后复制
    我们需要更新我们的homecontroller@index以显示主页视图。

    从屏幕截图中可以看到

    >,当用户选择一个帐户时,我们异步更改属性和视图。为了实现这一目标,我编写了一些简单的JS,您可以在最终的存储库中检查一下。使用php的Google Analytics(分析)API V3:获取数据>

    >报告API

    通过提供所选视图,指标和维度,我们可以获得有关用户和交互的详细统计信息。用户提交后的结果类似于:

    >

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    [

        {

            id: "UA-52317977-1",

            name: "Prop1"

        },

        {

            id: "UA-52317977-2",

            name: "Prop1"

        }

    ]

    登录后复制

    我们的ga_service ::报告接受四个参数:视图ID,开始日期和结束日期以及一系列指标。

    google无法返回您的所有旧数据 - 而是我们提供了一个开始日期和结束日期。在我的示例中,我询问了上个月的结果。

    第三个参数是我们从用户选择中已经拥有的指标列表。

    >

    第四个可选参数是选项的数组。
    - 最大值:结果的最大数量。 (我们使用10加速响应)。
    - 尺寸:逗号分开的值列表。 (GA:Country,GA:City)
    - 过滤器:逗号分开的规则列表要应用于结果。 在此示例中,我们将美国排除在尺寸列表之外,仅显示大于100的页面浏览量。
    > - 段:要应用于数据的高级段ID。
    - 排序:订单结果通过维度或指标。可以结合多个维度和指标。 (ga:country,-ga:pageViews = ga:ga:country上升和ga:pageviews降落。
    - 开始索引:可用于分页。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    <span>// app/src/GA_Service.php

    </span><span>public function accounts(){

    </span>   <span>if( !$this->isLoggedIn() ){

    </span>       <span>//login

    </span>   <span>}

    </span>  

        <span>$service = new Google_AnalyticsService($this->client);

    </span>   <span>$man_accounts = $service->management_accounts->listManagementAccounts();

    </span>   <span>$accounts = [];

    </span>

        <span>foreach ($man_accounts['items'] as $account) {

    </span>       <span>$accounts[] = [ 'id' => $account['id'], 'name' => $account['name'] ];

    </span>   <span>}

    </span>

        <span>return $accounts;

    </span><span>}//accounts

    </span>

    <span>// app/controllers/HomeController.php

    </span><span>public function accounts(){

    </span>   <span>$accounts = $this->ga->accounts();

    </span>

        <span>return $accounts;

    </span><span>}//accounts

    </span>

    <span>// app/routes.php

    </span><span>Route<span>::</span>get('/accounts', 'HomeController@accounts');</span>

    登录后复制
    登录后复制
    登录后复制
    >调用GET GOGEE_ANALYTICSSERVICE :: GET方法后,我们使用结果项目,列标题和总结果的列表将结果作为表输出。>

    使用php的Google Analytics(分析)API V3:获取数据

    扩展演示

    现在,让我们看看如何通过过滤器,分类和段扩展演示。

    >

    >过滤

    >过滤器是从返回结果中排除某些数据的一种方法。他们采用以下形式:

    1

    <span>$this->client->setUseObjects(true);</span>

    登录后复制
    登录后复制
    登录后复制
      ga:列:维度或公制ID(例如:GA:country)
    • >运算符:操作员取决于度量或尺寸列ID的选择,请检查docs以获取运算符列表。
    • 值:该值可以是数字,字符串或正则条件。
    • >
    >您可以组合多个过滤器:您可以将逗号(,)用作操作员或semi-colon(;)作为一个和运算符。

    默认情况下,Google Analytics(分析)将您的所有数据组在一个称为所有会话的组中。但是,您始终可以从内置段中选择或根据您的需求创建一个新的。您可以按推荐,设备类型,年龄,性别等进行分组数据。

    >

    >您可以通过在可用段列表中添加新的选择元素来扩展演示,并如前所述将ID传递给GET方法。

    >您可以访问 /片段页面以查看具有其ID的可用段的列表,您当然可以将其作为一个选项,如我们之前所看到的。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    <span>{

    </span>    kind<span>: "analytics#accounts",

    </span>    <span>username: "me@mail.com",

    </span>    <span>totalResults: 3,

    </span>    <span>startIndex: 1,

    </span>    <span>itemsPerPage: 1000,

    </span>    <span>items: [

    </span>        <span>{

    </span>            id<span>: "4449308",

    </span>            <span>kind: "analytics#account",

    </span>            <span>selfLink: "https://www.googleapis.com/analytics/v3/management/accounts/4449308",

    </span>            <span>name: "me@mail.com",

    </span>            <span>permissions: {

    </span>                effective<span>: [

    </span>                    <span>"COLLABORATE",

    </span>                    <span>"EDIT",

    </span>                    <span>"MANAGE_USERS",

    </span>                    <span>"READ_AND_ANALYZE"

    </span>                <span>]

    </span>            <span>},

    </span>            <span>created: "2013-10-01T11:04:28.478Z",

    </span>            <span>updated: "2013-10-01T11:04:28.478Z",

    </span>            <span>childLink: {

    </span>                type<span>: "analytics#webproperties",

    </span>                <span>href: "https://www.googleapis.com/analytics/v3/management/accounts/4449308/webproperties"

    </span>            <span>}

    </span>        <span>}

    </span>    <span>]

    </span><span>}</span>

    登录后复制
    登录后复制
    登录后复制
    总结

    Google Analytics(分析)API非常灵活,并提供了许多功能,但是该文档尚未完成,并且没有提供良好的使用示例。通过挖掘源代码并测试可能性和限制,您可以获得更多。

    在本系列中,我们专注于Google Analytics(分析)的基本用法,但是您可以通过Google Analytics(分析仪表板)的选项扩展演示。

    >

    您可以检查本教程的源代码的最终存储库。

    >问题?评论?让我知道!

    经常询问有关使用Google Analytics API V3与php

    使用Google Analytics(常见问题解答)

    >如何开始使用PHP?

    的Google Analytics(分析)API V3开始使用PHP的Google Analytics API V3,您首先需要在Google Developers Console中创建一个项目。创建项目后,启用Google Analytics(分析)API。然后,为API创建凭证。您将收到客户ID和客户端的秘密,您将使用它来通过Google来验证您的应用程序。之后,您可以使用PHP开始向API提出请求。您需要拥有一个Google帐户并访问要检索的Google Analytics(分析数据)。您还需要在服务器上安装PHP,并且对PHP编程的基本了解。

    >如何使用PHP使用Google对我的应用程序进行身份验证我的应用程序?创建API凭据时,您需要使用您收到的客户ID和客户端秘密。您可以使用这些凭据来获取访问令牌,然后您可以使用该凭据来验证您的API请求。

    如何使用php?

    从Google检索Google Analytics(分析)从Google检索数据。使用PHP分析,您需要向Google Analytics(Analytics)API提出GET请求。您可以指定要在请求参数中应用的指标,尺寸和过滤器。 API将以JSON格式返回请求的数据,然后您可以在应用程序中解析并使用。

    >

    >在使用Google Analytics(分析Analytics API V3)使用PHP?

    时,我该如何处理错误。 Google Analytics(分析)API V3具有PHP,出于各种原因可能发生错误,例如无效的请求参数或身份验证问题。您可以通过检查API返回的HTTP状态代码和错误消息来处理这些错误。这将为您提供有关出了什么问题以及如何解决的信息。

    >我可以使用php的Google Analytics API V3跟踪实时数据吗?

    是的,您可以使用Google Analytics(分析)带有PHP的API V3跟踪实时数据。 API提供了一个实时报告API,您可以使用该API检索实时数据,例如网站上的活动用户数量。

    >

    >在使用php的Google Analytics API V3时如何过滤数据?

    >您可以通过在API请求中指定过滤器参数时使用Google Analytics API V3过滤数据。这些参数允许您限制API返回的数据以满足特定条件。

    我可以使用带有PHP的Google Analytics API V3从多个Google Analytics Carescect检索数据吗?可以将Google Analytics(分析)API V3与PHP一起从多个Google Analytics(分析)帐户中检索数据。您只需要分别对每个帐户进行身份验证,并为每个帐户单独提出API请求。

    >在使用php的Google Analytics API V3使用PHP?

    使用Google Analytics(分析分析)API API V3与PHP使用PHP时,我如何分页结果。在您的API请求中。这些参数允许您指定要检索的结果范围。通过在API请求中指定排序参数,V3带有PHP。这些参数允许您根据特定的指标或尺寸订购API返回的数据。

    >

以上是使用php的Google Analytics(分析)API V3:获取数据的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

在PHP API中说明JSON Web令牌(JWT)及其用例。 在PHP API中说明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

会话如何劫持工作,如何在PHP中减轻它? 会话如何劫持工作,如何在PHP中减轻它? Apr 06, 2025 am 12:02 AM

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。

PHP 8.1中的枚举(枚举)是什么? PHP 8.1中的枚举(枚举)是什么? Apr 03, 2025 am 12:05 AM

PHP8.1中的枚举功能通过定义命名常量增强了代码的清晰度和类型安全性。1)枚举可以是整数、字符串或对象,提高了代码可读性和类型安全性。2)枚举基于类,支持面向对象特性,如遍历和反射。3)枚举可用于比较和赋值,确保类型安全。4)枚举支持添加方法,实现复杂逻辑。5)严格类型检查和错误处理可避免常见错误。6)枚举减少魔法值,提升可维护性,但需注意性能优化。

描述扎实的原则及其如何应用于PHP的开发。 描述扎实的原则及其如何应用于PHP的开发。 Apr 03, 2025 am 12:04 AM

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

在PHPStorm中如何进行CLI模式的调试? 在PHPStorm中如何进行CLI模式的调试? Apr 01, 2025 pm 02:57 PM

在PHPStorm中如何进行CLI模式的调试?在使用PHPStorm进行开发时,有时我们需要在命令行界面(CLI)模式下调试PHP�...

如何用PHP的cURL库发送包含JSON数据的POST请求? 如何用PHP的cURL库发送包含JSON数据的POST请求? Apr 01, 2025 pm 03:12 PM

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

解释PHP中的晚期静态绑定(静态::)。 解释PHP中的晚期静态绑定(静态::)。 Apr 03, 2025 am 12:04 AM

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

See all articles