小编DfK*_*era的帖子

如何覆盖父对象的静态属性,让父对象访问PHP中的新值?

这就是我所拥有的:可以持久保存在数据库中的所有对象都扩展了DatabaseObject抽象类,该抽象类具有实际监视属性更改并运行数据库查询的所有逻辑代码.

我使用两个静态变量来定义特定于对象的细节.我一般在基类中定义它们,然后据说我在实际的数据库对象中覆盖它们.

问题是:当实际执行父类中的代码时,它使用旧的父值而不是当前的对象值.

这是基类的代码:

abstract class DatabaseObject {

    public $id;

    private static $databaseTable = NULL;
    private static $databaseFields = array();

    private $data = array();
    private $changedFields = array();

    public function IDatabaseObject($id) {
    $this->id = $id;
    $this->data = Database::GetSingle(self::$databaseTable, $id);

    Utils::copyToObject($this, $this->data, self::$databaseFields);
    }

    public static function Load($id) {
    return new self($userID);
    }

    public static function Create($data) {

    $id = Database::Insert(self::$databaseTable, $data);

    return new self($id);
    }

    public function Save() {
    $data = Utils::copyFromObject($this, $this->changedFields);

    Database::Update(self::$databaseTable, $data, $this->id);

    }

    public function __constructor() …
Run Code Online (Sandbox Code Playgroud)

php oop static overriding properties

18
推荐指数
1
解决办法
9922
查看次数

如何在C#中获取服务器和客户端之间的延迟?

我正在为一个游戏引擎开发一个C#Server应用程序,我正在用ActionScript 3编写.我正在使用权威服务器模型来防止作弊并确保公平游戏.到目前为止,一切运作良好:

当客户端开始移动时,它会告诉服务器并在本地开始渲染; 然后,服务器告诉其他人客户端X已经开始移动,其中包含详细信息,以便他们也可以开始渲染.当客户端停止移动时,它会告诉服务器,该服务器根据客户端开始移动的时间执行计算,并且客户端呈现滴答延迟并回复所有人,因此他们可以使用正确的值进行更新.

问题是,当我在服务器计算中使用默认的20ms滴答延迟时,当客户端移动相当长的距离时,当它停止时会有明显的向前倾斜.如果我将延迟略微增加到22ms,在我的本地网络上一切都运行得非常顺利,但在其他地方,倾斜仍然存在.经过一番实验后,我注意到所需的额外延迟几乎与客户端和服务器之间的延迟有关.我甚至把它煮成了一个非常好的公式:延迟= 20 +(延迟/ 10).

那么,我将如何继续获取某个客户端和服务器之间的延迟(我正在使用异步套接字).CPU的工作量不能太大,因为没有服务器运行缓慢.此外,这真的是最好的方式,还是有更有效/更简单的方法来做到这一点?

.net c# sockets latency client-server

7
推荐指数
2
解决办法
1万
查看次数

POST数据在大文件上传时消失

我的PHP应用程序中存在文件上载实用程序的问题.当在表单上发送大文件(9MB +)时,我得到了一个非常奇怪的行为:表格中包含的POST数据消失了,包括文件信息.

我已经增加了所有PHP限制(时间限制,最大输入时间,发布最大大小,内存限制和上传最大文件大小),但我仍然无法获得正确的行为.我尝试用基于Flash的解决方案(SWFUpload,www.swfupload.org)替换常规HTTP表单,仍然是相同的行为.

我尝试过多个类似大小的文件,绝对不是特定的文件问题.我已经调试了使用Firebug发送的POST变量,并且标题中仍然存在正确的变量以及文件.

这可能会发生什么?

html javascript php forms uploading

7
推荐指数
1
解决办法
1843
查看次数

单次调用fgetcsv()会耗尽PHP中的大内存限制

我试图从平均大小的CSV(10 MB),标题和第一行读取两行.我将PHP的内存限制设置为64 MB.然而,在第二次调用fgetcsv()时,我得到了内存耗尽错误.

我删除了脚本的每个不必要的部分进行调试,并逐步跟踪内存使用情况,我仍然无法弄明白.第一次调用后,内存使用率低于1 MB,但在第二次调用时,发生内存耗尽错误.

这是代码:

<?php
function trace($msg) {
    echo "<br>" . date("Y-m-d H:i:s") . " - " . memory_get_usage() . " bytes - {$msg}";
}

ini_set('display_errors', 'on');
error_reporting(E_ALL);
ob_implicit_flush(true);

trace("CSV Memory Limit test");

$path = "../data/uploaded/1405712684_base_leitores_july2014.csv";
trace("path = {$path}");

$fp = fopen($path, "r");
trace("file pointer opened");

trace("getting header...");
$header = fgetcsv($fp, 1024);
trace("header fetched");
var_dump($header);
trace("header displayed");

trace("fetching another line");
$l1 = fgetcsv($fp, 1024);
trace("line fetched");
var_dump($header);
trace("line displayed");
Run Code Online (Sandbox Code Playgroud)

这是输出:

2014-07-18 16:06:26 - 249544 bytes - CSV Memory …
Run Code Online (Sandbox Code Playgroud)

php memory nginx fgetcsv

3
推荐指数
1
解决办法
1960
查看次数