我有一个搜索(过滤)字段的表单,如下所示:
xtype: 'form',
id: 'searchPanel',
title: 'Search',
collapsible: true,
bodyPadding: 10,
height: 210,
buttonAlign: 'left',
defaults: {
width: 400,
labelWidth: 120,
allowBlank: true,
enableKeyEvents: true
},
layout: {
type: 'table',
columns: 2
},
items: [
{
xtype: 'textfield',
name: 'txtFltrSiteName',
fieldLabel: 'Site name or alias',
id: 'txtFltrSiteName'
},
{
xtype: 'textfield',
name: 'txtMonthTraffic',
fieldLabel: 'Month traffic',
id: 'txtMonthTraffic',
style: 'margin-left: 100px;'
},
{
xtype: 'combo',
id: 'ddlFltrPM',
name: 'ddlFltrPM',
fieldLabel: 'Project manager',
displayField: 'display_name',
valueField: 'user_id',
editable: false,
store: new …Run Code Online (Sandbox Code Playgroud) 我有点担心为什么在PHP 7中删除了使用数组元素作为方法名访问对象方法的功能.
例如:
$carObj = new Car();
$array = ['method'=>'getMilage', 'object'=>$carObj];
// FATAL HERE:
$mileage = $array['object']->$array['method']();
// WORKS OK:
$objName = $array['object'];
$metName = $array['method'];
$mileage = $objName->$metName();
Run Code Online (Sandbox Code Playgroud)
这段代码肯定适用于PHP 5.6,但是当切换到PHP 7.1时它会抛出致命的东西.在发行说明和SO主题中找不到任何相关内容.
PS最初在PHP升级时在Magento 1.14.2.0版本中发现这个,因为Varien库使用以下代码:
文件:Varien/File/Uploader.php
//run validate callbacks
foreach ($this->_validateCallbacks as $params) {
if (is_object($params['object']) && method_exists($params['object'], $params['method'])) {
$params['object']->$params['method']($this->_file['tmp_name']);
}
}
Run Code Online (Sandbox Code Playgroud)
给出这个:
致命错误:未捕获错误:函数名称必须是第274行/var/www/html/lib/Varien/File/Uploader.php中的字符串
-
编辑#1:
你可以在这里测试它:
http://sandbox.onlinephpfunctions.com/code/d1d2d36f96a1b66ed7d740db328cd1f14cc2d7d8