Php 谁能解释一下这是怎么发生的?

Php 谁能解释一下这是怎么发生的?,php,session,Php,Session,我创建了一个类似account_details.php的页面,其中我计算用户访问该页面的次数。为此,我创建了一个名为count_session.php的文件,其中的代码如下: <?php session_start(); if(!isset($_SESSION['counter'])){ $_SESSION['counter'] = 0; }else{ $_SESSION['counter'] = $_SESSION['counte

我创建了一个类似account_details.php的页面,其中我计算用户访问该页面的次数。为此,我创建了一个名为count_session.php的文件,其中的代码如下:

<?php
    session_start();

    if(!isset($_SESSION['counter'])){
        $_SESSION['counter'] = 0;
    }else{
        $_SESSION['counter'] = $_SESSION['counter'] + 1;
    }
?>


我将上面的文件包含在account_details.php页面中,我希望用户看到他访问了多少次,它工作正常,但我不明白它是如何工作的?我已经在第一个“if”条件(即if(!isset))中使用echo消息进行了检查,它似乎没有进入该条件,而是进入了else部分,但它是如何被0初始化的,但是当用户访问account_details.php页面时,会弹出一条消息,如“您已访问该页面1次”。为什么在count_session.php文件中的任何地方都还没有初始化它,却在计算0+1呢。有人能告诉我吗?

会话对于站点是全局的(如主机名),因为它们由存储在cookie中的ID标识,默认情况下,cookie会发送回单个域名下的所有URL。您可以进一步限制,但这是默认行为。

会话是站点的全局会话(如主机名),因为它们由存储在Cookie中的ID标识,默认情况下,Cookie会发送回单个域名下的所有URL。您可以进一步限制它,但这是默认行为。

这与会话变量无关,因为它与常规变量的工作方式相同

如果您编写了类似于
$a=$a+1
的代码,并且
$a
未在任何地方声明,PHP将其视为未设置,如果强制转换为int,则转换为
0
(与强制转换为bool时转换为
false
的方式相同,但在本例中并不相关)。之所以将变量转换为int,是因为PHP觉得有必要,因为您正试图对该变量执行数学运算


总而言之:PHP检测到您想要将2个值相加,执行类似于
intval($a)
(当然是在内部)的操作,并向其中添加1。此外,如果您启用了通知,这应该会给您一个通知。

这与会话变量无关,因为它与常规变量的工作方式相同

如果您编写了类似于
$a=$a+1
的代码,并且
$a
未在任何地方声明,PHP将其视为未设置,如果强制转换为int,则转换为
0
(与强制转换为bool时转换为
false
的方式相同,但在本例中并不相关)。之所以将变量转换为int,是因为PHP觉得有必要,因为您正试图对该变量执行数学运算

总而言之:PHP检测到您想要将2个值相加,执行类似于
intval($a)
(当然是在内部)的操作,并向其中添加1。此外,如果您启用了通知,这应该会给您一个通知。

请继续阅读。请继续阅读。