小编lep*_*epe的帖子

PHP:从父级调用静态方法时出现"调用未定义的方法"错误

如果两者都是静态的,那么从父类调用子类方法的正确方法是什么?

当我使用静态类时,它返回错误" 调用未定义的方法A :: multi() ",但是当我使用非静态方法时没有问题,例如:

//-------------- STATIC ------------------
class A {
    public static function calc($a,$b) {
        return self::multi($a, $b);
    }
}
class B extends A {
    public static function multi($a, $b) {
        return $a*$b;
    }
}
echo B::calc(3,4); //ERROR!!

//-------------- NON-STATIC ----------------
class C {
    public function calc($a,$b) {
        return $this->multi($a, $b);
    }
}
class D extends C {
    public function multi($a, $b) {
        return $a*$b;
    }
}
$D = new D();
echo $D->calc(3,4); // Returns: 12
Run Code Online (Sandbox Code Playgroud)

有没有办法在不知道其类名的情况下调用子静态方法?

php static-methods

4
推荐指数
1
解决办法
2905
查看次数

使用 Jetty 11 的 HTTP/3 服务器没有响应

我正在尝试使用 Jetty 11 和 Java 11 来实现 HTTP/3 测试服务器(作为实验)。我正在遵循文档中的代码:

public class HTTP3Server {
    public static void main(String[] args) {
        Server server = new Server();

        // The SSL Context
        SslContextFactory.Server sslContextFactory = new SslContextFactory.Server();
        sslContextFactory.setKeyStorePath("/etc/java/keystore.jks");
        sslContextFactory.setKeyStorePassword("password");

        // The HTTP configuration object
        HttpConfiguration httpConfig = new HttpConfiguration();
        SecureRequestCustomizer src = new SecureRequestCustomizer();
        src.setSniHostCheck(false);
        httpConfig.addCustomizer(src);

        // Create and configure the HTTP/3 connector.
        HTTP3ServerConnectionFactory h3Factory = new HTTP3ServerConnectionFactory(httpConfig);
        HTTP3ServerConnector connector = new HTTP3ServerConnector(server, sslContextFactory, h3Factory);
        connector.setPort(3443);
        server.addConnector(connector);

        // Create and configure a …
Run Code Online (Sandbox Code Playgroud)

java https jetty http3 jetty-11

4
推荐指数
1
解决办法
657
查看次数

Inno Setup 运行部分的简单进度页面

我的安装程序非常简单,基本上是:

  1. 欢迎页面
  2. 进度页
  3. 最后一页

欢迎页面和最后页面是标准的(只需一个按钮)。在“进度”页面上,我正在静默安装一堆其他程序。

实际的脚本正在安装“[Run]”部分中的每个程序。
问题是进度条达到 100% 后就停留在那里。
我只能更改消息文本。

我想要实现的是使用 Pascal Script 来显示进度(因为它可以让我有更多的灵活性),例如:

procedure InitializeWizard;
begin
  ProgressPage.SetProgress(1, 100);
  exec(.......)
  ProgressPage.SetProgress(15, 100);
  exec(.......)
  ProgressPage.SetProgress(40, 100);
  ...
  ...
end;
Run Code Online (Sandbox Code Playgroud)

这样我就可以显示更准确的进度条。这就是我所拥有的(模拟安装。取自示例):

[Code]

var
  ProgressPage: TOutputProgressWizardPage;

procedure InitializeWizard;
begin
  ProgressPage := CreateOutputProgressPage('My App','');
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  I: Integer;
begin
  if CurPageID = wpWelcome then begin
    ProgressPage.SetText('Starting installation...', '');
    ProgressPage.SetProgress(0, 0);
    ProgressPage.Show;
    try
      for I := 0 to 10 do begin
        ProgressPage.SetProgress(I, 10);
        Sleep(100);
      end;
    finally
      ProgressPage.Hide;
    end;
  end else
    Result …
Run Code Online (Sandbox Code Playgroud)

inno-setup pascalscript progress-bar

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

PHP的真实SESSION对象

编辑:(更新)

也许我的问题不够明确.好的,我们这样说吧:

$arr["a"] = 10; 
var_dump($arr);
$arr["b"] =& $arr["a"];
var_dump($arr);
Run Code Online (Sandbox Code Playgroud)

第一个var_dump返回:

array
  'a' => int 10
Run Code Online (Sandbox Code Playgroud)

而第二个回归:

array
  'a' => &int 10
  'b' => &int 10
Run Code Online (Sandbox Code Playgroud)

如果我取消设置($ arr ["a"]),它将返回:

array
  'b' => int 10
Run Code Online (Sandbox Code Playgroud)

规则是,当2个或更多变量"指向"相同内容时,var_dump将显示带有&符号(&)的引用.

在$ _SESSION的情况下,即使使用 register_long_arrays = Off $ _SESSION仍然显示引用.所以很明显,其他变量也指向相同的内容.

换句话说,如果我取消设置($ _ SESSION),仍然可以链接到某个地方的其他变量.在上面的例子中,当我取消设置($ ARR [ "一"]) :我仍然可以,如果我创建链接,像恢复内容$ ARR [ "z"的] =&$ ARR [ "b"的].

所以,我原来的问题是,有谁知道其他变量是什么?这个变量很可能不存在......但我想知道为什么PHP内部会显示这个变量.

谢谢


(原始问题:)

在PHP中创建会话时,例如:

session_start();
$_SESSION["name"] = "my name";
Run Code Online (Sandbox Code Playgroud)

并转储GLOBAL变量:

var_dump($GLOBALS);
Run Code Online (Sandbox Code Playgroud)

你会看到类似的东西:

  'HTTP_SESSION_VARS' => &
    array
      'name' => …
Run Code Online (Sandbox Code Playgroud)

php reference var-dump superglobals httpsession

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

Datepicker动态最小/最大日期

我在我正在构建的网站上使用jQuery datepicker插件.我需要用户能够在指定的日期范围内选择两个日期.这很容易做到.

问题是允许的日期范围根据另一个选择框(具有建筑物名称)而变化.所以我需要做的是在mysql数据库中查找建筑物,返回允许的最小和最大日期,并使用datepicker允许用户选择允许范围内的日期范围.

在我的主页上,我目前正在使用:

$('#dateStartMainChart').load(url);
Run Code Online (Sandbox Code Playgroud)

加载一个输出的php文件:

<script> 
$(function() {
    $( "#dateEndMainChartSelect" ).datepicker({ 
        dateFormat: 'yy-mm-dd',
        defaultDate: -1,
        minDate: new Date(2011,03,03),
        maxDate: +0,
            firstDay: 1,
        changeMonth: true,
        changeYear: true
    });
}); 
</script>
<input type="text" class="text" value=2011-03-04 id="dateEndMainChartSelect" align="center"/>
Run Code Online (Sandbox Code Playgroud)

从mysql数据库正确填充minDate和maxDate的位置.但是,结果是我只在主页上找到一个带有日期的文本框,而不是datepicker元素.

有什么想法吗?

jquery datepicker uidatepicker jquery-ui-datepicker

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

PHP/JSON:收到$ _POST数组不完整

使用$ .post(JQuery)作为JSON数组发布大约100行数据.但由于某些原因,并非所有行都被接收.

数据看起来或多或少像这样(内容基本上是数字和小字符串):

rows = [["U", "0", "81949", 32 more...], ["U", "0", "81950", 32 more...] ..... ]
Run Code Online (Sandbox Code Playgroud)

我发送数据的方式是:

$.post(url+"callback=?", { data : rows }, function(){}, "json");
Run Code Online (Sandbox Code Playgroud)

如果我回显在本地版本中收到的行数(count($ _ POST)),则显示"100",但在生产服务器上显示"25"(每次都是相同的数量).

检查firebug中的请求详细信息,它正确显示已发送所有100个.

我虽然它可能是PHP"post_max_size"值,但我把它设置为"100M",我认为这已经足够了.

我很确定它必须与服务器设置,但我没有想法...提前谢谢.

更新:

  • 生产服务器有8GB的内存,大约占用了一半(这不是内存问题).
  • 没有超时(所有过程都在大约3秒内完成).

php arrays jquery post json

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

从 Java JDK 函数调用 TypeScript

我看到Calling a groovy script from a java function using javax.script我猜想使用 runWithGroovyClassLoader 可以获取一个 java 类、java 对象并使用参数调用其方法。尽管在示例中它是一个无参数的示例。

我提供了一个能够调用类型脚本的解决方案。所以我的用户在前端输入类型脚本。在后端,我们从 Java 函数中调用脚本,从 Java 向其传递当前 txn 的一些状态(参数),然后类型脚本返回一个映射/对象以调用 java 函数

java typescript function-invocation

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

Javascript:增加点击次数,但每秒只增加一次

我想在每次单击按钮时增加一个计数器变量,但每秒只增加一次。

我已经想出增加计数器,但如果我在 1 秒内多次单击按钮,它会增加多次。

var score = 0;
increaseCount() {
  score++;
}
Run Code Online (Sandbox Code Playgroud)

我如何限制计数器每秒增加一个?

javascript counter

-1
推荐指数
1
解决办法
269
查看次数