Question: What it says above. Unsurprisingly, I couldn't find a clear answer to this.

I just want to know if calling it more than once in a script will cause a problem.

Answer: 
Quoting [**the manual**](http://fr2.php.net/session_start) :

> 
> As of PHP 4.3.3, calling `session_start()` after the session was
>  previously started will result in an error of level `E_NOTICE`.
>    
> Also, the second session start will simply be ignored.
> 
> 
> 

So, it will not do much -- except raise a notice, which indicates there is some kind of a *problem* ; which means you should not call this function more than once.

**Edit after @hakre's comment :** Just to be sure, I've tested with the following portion of code, which calls session\_start() twice, after making sure errors and notices get reported :

```
<?php
ini_set('display_errors', 'on');
error_reporting(E_ALL | E_STRICT);

session_start();
session_start();

```

And I do get the following notice :

```
Notice: A session had already been started - ignoring session_start() in /.../temp.php on line 6

```
No, `session_start` is not idempotent, it has dependencies in the runtime state of the language.

You can normally call it more than once which could give you some warnings or errors without much of a difference, however, if you change the session state and/or configuration between calls, the function won't behave the same.

As calling the function changes the session state, by a very strict view on idempotent, it's totally not. 

Additionally, it's important to note that the outcome of that function in correspondence to `$_SESSION` remains defined by the associated store, session name and session id.