由于项目需要,我安装了一个PHP的扩展V8Js,这个扩展可以让PHP运行时运行一段JavaScript的代码.
<?php
$v8 = new V8Js();$JS = <<< EOT
len = print('Hello' + ' ' + 'World!' + "\\n");
len;
EOT;
try {
var_dump($v8->executeString($JS, 'helloworld.js'));
} catch (V8JsException $e) {
var_dump($e);
}?>
可是问题是,我不同的页面之间要用到同一个$v8对象.比如a.php对$v8初始化(可能会用$v8->executeString来运行一段js代码),然后b.php需要拿到a.php里面定义的$v8来用$v8->executeString执行js代码.
我尝试过使用session,可是$v8在序列化和反序列化后,一运行就会报错:"PHP Fatal error: V8 not initialized".
尝试过APC, 结果使用apc_store和apc_fetch之后,运行也会报上面的错.请问有没有某种方法让PHP可以在运行时在后台存储一个全局的对象,这个对象常驻内存,不同的页面都可以访问呢?
这样的话,我可以将$v8放在这样一个全局变量中, 问题也就解决了.如能相助,不胜感激.
<?php
$v8 = new V8Js();$JS = <<< EOT
len = print('Hello' + ' ' + 'World!' + "\\n");
len;
EOT;
try {
var_dump($v8->executeString($JS, 'helloworld.js'));
} catch (V8JsException $e) {
var_dump($e);
}?>
可是问题是,我不同的页面之间要用到同一个$v8对象.比如a.php对$v8初始化(可能会用$v8->executeString来运行一段js代码),然后b.php需要拿到a.php里面定义的$v8来用$v8->executeString执行js代码.
我尝试过使用session,可是$v8在序列化和反序列化后,一运行就会报错:"PHP Fatal error: V8 not initialized".
尝试过APC, 结果使用apc_store和apc_fetch之后,运行也会报上面的错.请问有没有某种方法让PHP可以在运行时在后台存储一个全局的对象,这个对象常驻内存,不同的页面都可以访问呢?
这样的话,我可以将$v8放在这样一个全局变量中, 问题也就解决了.如能相助,不胜感激.
class Test{
public $name = 'yy';
public function __sleep(){
echo "Serialize already!<br>";
return $a = array("a");
}
public function __wakeup(){
echo "Unserialize already!<br>";
}
}
$test = new Test();
$t1 = serialize($test);//将$t1存起来
$t2 = unserialize($t1);
echo $t2->name;
serialize再unserialize以后,一运行就出错了.