问题标签 [php-5.3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
302 浏览

php - 有没有一种简单的方法可以在 php 5.3 中模拟友谊

我需要一些课程来与我系统中的其他课程交朋友。缺少此功能使我公开了一些不应该公开的方法。其后果是我的团队成员以一种糟糕且丑陋的方式实现代码,从而导致混乱。

有没有办法在 php 5.3 中定义友谊?

(我知道http://bugs.php.net/bug.php?id=34044如果没有简单的解决方案,您可能想在那里投票)。

0 投票
4 回答
620 浏览

php - 在 php 中做什么和做什么

我有这个代码

那里在&做什么。谢谢

0 投票
4 回答
626 浏览

php - 对象方法和静态方法的区别

静态方法和对象方法有什么区别?它们在哪里以及为什么使用不同?我什么时候使用其中的哪一个?

0 投票
6 回答
1164 浏览

php - 我应该将服务器的 PHP 升级到 5.3 版吗?

我的服务器上有 php 5.2.11。我应该升级到新的 PHP 5.3.2 吗?

有什么新功能可以挽救我的生命吗?

有什么建议吗?

0 投票
1 回答
175 浏览

php - PHP5.3 范围内的非静态变量表现为静态

PHP5.3 是否有任何已知的错误问题使范围内的非静态变量表现为静态?我不知道为什么在我的 if{}范围内

第一次它应该触发 E_NOTICE 但第二次它打印 5。我为此苦苦挣扎了 3 个多小时,但没有从我这边得到任何故障提示。

0 投票
4 回答
385 浏览

php - 在同一行中使用explode()时如何访问数组索引?

无法绕开我的头......

说,我们像这样爆炸整个事情:

$extract = explode('tra-la-la', $big_sourse);

然后我们想在索引 1 处获得一个值:

$finish = $extract[1];

我的问题是如何一口气完成,这么说。与此类似的东西:

$finish = explode('tra-la-la', $big_sourse)[1]; // 不起作用

像下面这样的东西就像一个魅力:

$finish = end(explode('tra-la-la', $big_sourse));

// 或者

$finish = array_shift(explode('tra-la-la', $big_sourse));

但是,如果该值位于中间的某个位置怎么办?

0 投票
1 回答
659 浏览

caching - PHP5.3 与 FastCGI 缓存问题跨越不同的请求

我设计了一个使用简单缓存机制的样式表/javascript 文件捆绑器和压缩器。它只是将每个捆绑文件的时间戳写入文件并比较这些时间戳以防止再次重写“主文件”。这样,在修改了 CSS 或 JS 文件的应用程序更新(这里是我的网站)之后,单个请求只会再次触发一次缓存。然后,此请求以及所有其他请求将看到一个已编译的文件,例如 master.css?v=1234567。

问题是,在我的开发环境下,每个测试都通过了,集成效果很好,一切都按预期工作。但是,在我的暂存环境中,在使用 FastCGI 编译的 PHP5.3 的服务器上,我的缓存文件似乎会被无效数据重写,但只有在同一个浏览器没有请求时才会如此。

用例:

  • 我在 Linux 下的 Firefox 上提出了第一个请求。对于该浏览器上的所有其他请求,一切都按预期工作。
  • 一旦我在 Windows/Linux(IE7、IE8、Chrome 等)上发出请求,我的缓存文件就会获得无效数据,但仅限于在 FastCGI 下运行的暂存服务器上,而不是在开发中!
  • 在 Firefox 上运行另一个请求会正确地重新缓存文件。

然后我想知道,FastCGI 与它有什么关系吗?我认为浏览器的客户端甚至操作系统与服务器端代码没有任何关系。

我知道这个问题是抽象地描述的,但是粘贴任何具体的代码都会太重 IMO,但如果它可以解决我的问题,我会这样做。

我尝试过远程调试我的代码,发现一切仍在按预期工作,即使缓存文件被正确写入。我看到当错误发生时,文件被写入预期的数据,但在两秒后被无效数据重写 - 在 php 完成执行之后! -

有没有办法通过 PHP 函数禁用特定请求的 FastCGI 缓存?

0 投票
2 回答
164 浏览

php - 强制执行类属性的允许值或范围的最不草率的方法

假设我有一堂课……

说我创造和反对......

如果不由用户提供,则提供默认属性值是显而易见的。但是,如果我想对用户提供的对象属性值实施任意限制怎么办?如果我想强制$prop1int,不小于 1,不大于 5 怎么办。并且,$prop42类型string,不小于 'A',不大于 'Z'?为此,使用任何可能的语言功能或技巧,使脚本尽可能简短和甜美,最干净的方法是什么?

我被困在__construct()根据这样构建的规则数组检查提供的值...

正如您所看到的prop2,我的验证功能开始变得非常混乱,因为我不仅要考虑范围,还要考虑允许值的列表。使用验证代码和这个规则数组,我的脚本变得相当庞大。

问题是,我如何构建我的类或类属性或验证代码或脚本的任何其他方面,使其尽可能简短,以允许属性范围和值强制执行?是否有语言功能或技巧可以更优雅地处理这个问题?我是否已经到达了一堵砖墙,这种语言的极限?是否有其他语言的示例可以轻松实现这一点,可以提供一些线索?

0 投票
1 回答
335 浏览

php - PHP (5.3)、静态继承和引用的特殊行为

我正在用 PHP 5.3 编写一个库,其中大部分是一个具有几个静态属性的类,这些静态属性由子类扩展以允许子类的零配置。

无论如何,这里有一个示例来说明我发现的特殊性:

现在,就我而言,这对于静态继承来说是非常理想的行为,但是,更改static::$a =& $v;static::$a = $v;(无引用)你会得到我期望的行为,即:

谁能解释这是为什么?我无法理解引用如何以任何方式影响静态继承:/

更新:

根据Artefacto 的回答,在基类(在本例中为 A)中具有以下方法并在类声明之后调用它会产生上面标记为“所需”的行为,而无需在设置器中通过引用进行分配,同时保留结果当使用 self:: 作为上面的“预期”行为时。

0 投票
2 回答
544 浏览

closures - PHP闭包不能访问parnt函数参数吗?

我一直在为 PHP 5.3 编写一些代码,我想做一些类似于下面显示的代码的事情。我希望这段代码打印“hellohello”,但它会打印“hello”,并出现错误。

看来 $inner 闭包无法访问外部函数的参数。这是正常行为吗?它是一个PHP错误吗?我看不出这怎么能被认为是正确的行为......

谢谢!