php-5.3 相关问题

PHP 5.3(现在已经过了生命终结版)是PHP 5.2的继承者。它于2009年6月30日发布。将此标记用于特定于PHP 5.3的版本特定问题。

php 严格标准:“use”中只能通过引用传递变量

工作时我遇到了这个烦人的消息 严格标准:只有变量应该在 G:\xampp\htdocs\MyProject\ZendSkeletonApplication\module\Admission\src\Admission\Control... 中通过引用传递。

回答 1 投票 0

下拉菜单中缺少城市列表

我正在一个网站上工作,在登陆页面上有一个选项名称“选择城市”,在我们提供服务的城市的下拉菜单列表中显示,首先它是工作...

回答 1 投票 0

PHP 5.3:当在父类中定义但在子类中缺失时,后期静态绑定不适用于属性

看一下这个示例,并注意指示的输出。 看一下这个示例,并注意指示的输出。 <?php class Mommy { protected static $_data = "Mommy Data"; public static function init( $data ) { static::$_data = $data; } public static function showData() { echo static::$_data . "<br>"; } } class Brother extends Mommy { } class Sister extends Mommy { } Brother::init( "Brother Data" ); Sister::init( "Sister Data" ); Brother::showData(); // Outputs: Sister Data Sister::showData(); // Outputs: Sister Data ?> 我的理解是,使用 static 关键字将引用子类,但显然,只要子类中缺少该关键字,它就会神奇地应用于父类。 (这对于 PHP 来说是一种危险的行为,下面将详细解释。) 我之所以要这样做,是出于以下两点考虑: 我不希望在所有子类中定义所有属性的冗余。 我希望将属性定义为父类中的默认值,并且希望子类定义能够在需要时覆盖这些属性。每当需要默认值时,子类都需要排除属性,这就是为什么我没有在上面的示例中的子类中定义属性。 但是,如果我们想在运行时重写一个属性(通过 init 方法),它将为父类重写它!从那时起,之前初始化的子类(如 Brother 的情况)会意外地在您身上发生变化。 显然,这是由于子类没有自己的静态属性副本(每当子类内部未显式定义该静态属性时),但它不会抛出错误,而是切换 static 的行为来访问父类。因此,是否有某种方法可以让父类动态创建属于子类的属性,而不会出现在子类定义中?这样子类就可以拥有自己的静态属性和静态属性的副本关键字可以正确引用它,并且可以编写它以考虑父属性默认值。 或者还有其他解决方案吗,好、坏还是难看? 它确实引用了正确的类,只是,除非重新声明或引用集被破坏,否则子类中的静态属性与超类中的引用集相同。 所以你必须这样做: class Brother extends Mommy { protected static $_data; } 或: class Brother extends Mommy { } $tmp = null; Brother::$_data =& $tmp; unset($tmp); 我已经尝试了@Artefacto的第二种方法,该方法对OP的评论中所说的内容有效,但它对我不起作用,也许是因为我的情况更复杂,因为我在一个内部使用它父类中使用的特征,以及我使用 WordPress 钩子,这意味着事情将在不同的时间执行。 尝试不同的事情后,我想出了不同的方法。 它可能不适合所有人,因为它需要将属性更改为数组。另一方面,在我看来,它更干净,因为我们不需要使用 get_called_class() 也不需要使用指针。 <?php class Mommy { protected static $_data = array( self::class => "Mommy Data" ); public static function init( $data ) { static::$_data[static::class] = $data; } public static function showData() { echo static::$_data[static::class] . "<br>"; } } class Brother extends Mommy { } class Sister extends Mommy { } Brother::init( "Brother Data" ); Sister::init( "Sister Data" ); Brother::showData(); // Outputs: Brother Data Sister::showData(); // Outputs: Sister Data ?> 请注意,我已使用“Mommy data”初始化了数组,但如果您不需要父类的值,则可以将其初始化为空数组。 我希望这对某人有帮助。我自己花了几个小时努力寻找一种干净的方法来做到这一点,而又不放弃保持我的方法静态。

回答 2 投票 0

如何纠正 php 连接调用未定义函数 connect() 时的错误

我正在开发一个 php5.3 应用程序(我知道,我知道)。我还不能升级它。它使用安装在共享托管服务器上的包含目录中的 Pear db。 我已经有一分钟没有使用 PHP 了,b...

回答 1 投票 0

用递归方法将json转换为数组?

我正在尝试将数组内的json字符串转换为数组, $配置=数组( "type" => '{"category":"admin","page":"page"}', “说”=>“你好”, “php”=> 数组( ...

回答 7 投票 0

PHP 5 number_format() 不在本地返回异常消息,但在生产中返回

我在 PHP 5 遗留项目环境(本地和生产)中有以下 PHP 代码片段: 我在 PHP 5 遗留项目环境(本地和生产)中有以下 PHP 代码片段: <?php ini_set('display_errors', 'on'); error_reporting(E_ALL); error_reporting(-1); ini_set('error_reporting', E_ALL); try { number_format(""); } catch (\Exception $e) { throw new Exception($e->getMessage()); } ?> 我知道这是一个问题,因为 number_format 期望浮点或双精度。但是,它不会在本地主机中触发异常,但会在生产中触发异常。 实际消息是Warning: number_format() expects parameter 1 to be double, string given in /path-to-file.php 我还尝试将 ini_set('display_errors', 'on'); 更改为 ini_set('display_errors', 1); 并将 error_reporting(E_ALL); 更改为 error_reporting(E_ALL | E_STRICT); 但它不会返回预期的异常。 我还尝试删除 try/catch 并按原样使用 number_format,以便弹出异常错误,但未显示异常错误。 还尝试在 php.ini 中添加 display_errors = on 相同的结果。 检查本地主机和生产环境之间的服务器配置是否存在任何差异。这可能包括 php.ini、.htaccess 文件中的设置或特定于服务器的配置。 试试这个 ini_set('display_errors', 'on'); error_reporting(E_ALL); try { number_format(""); } catch (\Exception $e) { echo "Caught exception: " . $e->getMessage(); }

回答 1 投票 0

使用 PHP 在 Excel 中设置列属性

我正在编写一个运行 Oracle 查询并以 Excel 格式导出数据的应用程序。我面临的问题是 Excel 文件中名为 Tran_code 的列为 00。当我的代码运行时,

回答 1 投票 0

PHP Reflection:如何知道ReflectionMethod是否被继承?

在ReflectionMethod文档中,我找不到任何信息来了解方法是从其父类继承还是在反射类中定义。 编辑:我使用 ReflectionClass::getMethods(...

回答 3 投票 0

PHP 中 self::$bar 和 static::$bar 有什么区别?

在下面的例子中使用 self 和 static 有什么区别? 类 Foo { 受保护的静态 $bar = 1234; 公共静态函数实例() { 回显自我::$bar;

回答 6 投票 0

ionCube PHP 加载器 ioncube_loader_win_5.3.dll 不工作

我已尝试以下步骤来启用 ionCube PHP Loader 1) 下载适用于 Windows VC9(非 TS)(32 位)的免费 IonCube 加载程序 2)下载后,将zip包解压到您的wamp文件夹中

回答 1 投票 0

PHP 错误注意:未定义的偏移量:,尝试访问 null 类型值的数组偏移量

我在服务器日志中收到多个 php 错误,错误显示在我的 php 代码的 2 行上,但是 php 脚本正在工作,但它在服务器日志中显示这些错误。 PHP 注意:尝试访问数组偏移量...

回答 1 投票 0

在PHP 5.5及以下版本中实现finally

有没有办法为5.5以下的PHP版本实现finally块?

回答 1 投票 0

在php 5.5及以下版本实现finally

我想知道是否有任何编码技巧或方法可以用来为低于 5.5 的 php 版本实现finally 块。

回答 1 投票 0

降级到PHP 5.3

我有一行代码需要在 PHP 5.3.3 中工作。我不能升级PHP版本。错误在下面最后一行的::class属性(意外的T_CLASS,期望......

回答 1 投票 -1

无法访问phpGrid中的路径

我使用http:/phpgrid.com的php datagrid.But它显示2个错误,并说无法访问路径。这里是我的路径和配置,phpgrid文件夹localhost:8090MySiteadminphpGrid它显示 ...

回答 2 投票 0

如何为php 5.3安装mysql扩展?

我正在尝试使旧的应用程序在仅支持php 5.3的CentOS 7.8下运行。我已经编译并安装了php 5.3,但是无法使mysql扩展正常工作。这就是我...

回答 1 投票 0

注意:未定义的属性-如何避免在PHP中显示该消息?

你好,我正在打电话:$ parts = $ structure-> parts;现在,$ structure在特殊情况下仅包含部分内容,因此该调用将返回null。可以,我有一个if($ parts){...} ...

回答 4 投票 9

将多个数组对象随机插入另一个数组中,不混合任何单个数组对象元素的元素

假设具有3个数组对象:$ main,$ one,$ two如何将多个数组对象随机插入另一个数组中而不将任何单个数组对象元素的元素混合$ main =(1,2,3,4,5) ; $ ...

回答 1 投票 0

在php中显示仅满足此条件的数组

我有一个多维数组,并且iam循环到内部以获得子数组:所以我有一个子数组位于:Array([0] => Array([norm_value] => 1.2)[...] >

回答 1 投票 0

试图对表数据进行排序

我是PHP的初学者,我试图通过单击php中的Ascending或Descending按钮对表数据进行排序,但我做不到,请告诉我最简单的方法。 (无JavaScript)

回答 1 投票 -1

© www.soinside.com 2019 - 2024. All rights reserved.