- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在无数次浪费时间之后,我来寻求帮助,我一生都无法弄清楚问题是什么。将不胜感激帮助解决此问题。任何人都可以确定正在发生的事情或我没有做的事情。
有问题的代码驻留在两个单独的文件中,一个文件是 Data\Request
自动加载的类。错误在第 302 行出现,这是对相同命名空间、单独文件和单独类的调用,为 Data\ClientKey
.使用这一行的所有类都输出相同的错误。
错误:Notice: Use of undefined constant String - assumed 'String' in data/request.data.php on line 302
代码正在运行,并且在应用程序按预期运行时正在调用有问题的类,但出现此错误。我已声明 strict_types=1
即使删除它也不会使错误消失。
设置类名变量的代码
$NamespaceDataKeys = array('ServerKey', 'ClientKey', 'UserInfo', 'MachineInfo', 'Data');
if( in_array($key, $NamespaceDataKeys) ) {
$NamespaceKey = "Data\\$key";
}else{
$NamespaceKey = $key;
}
$sub = new $NamespaceKey(json_encode($value));
$value
周围添加双引号, 在声明
$NamespaceKey
时将其设置为类型
String
什么都没有消除错误。
$NamespaceDataKeys
是类
Request
中的变量并且也是
Data
中的类命名空间
<?php declare(strict_types=1);
Namespace Data;
class Request implements \JsonSerializable {
Private $Action;
Private $Direction;
Private $ServerKey;
Private $ClientKey;
public function __construct($json = false) {
if( DEBUG ) echo '[DEBUG] Class: ' . __CLASS__ . ' Method: ' . __METHOD__ . "\r\n";
if( $json) {
$this -> set($json);
//Log the request to the database
}
}
// code removed to keep size small
private function set( string $JSONData) {
$data = json_decode($JSONData, true);
foreach( $data AS $key => $value ) {
if( DEBUG ) echo "Key: [$key] ";
if( property_exists(__CLASS__,$key) ) {
if( is_array($value) ) {
if( DEBUG ) echo "Value: [Array]\r\n";
$NamespaceDataKeys = array('ServerKey', 'ClientKey', 'UserInfo', 'MachineInfo', 'Data');
if( in_array($key, $NamespaceDataKeys) ) {
$NamespaceKey = "\\Data\\$key";
}else{
$NamespaceKey = $key;
}
if(count(array_filter(array_keys($value), 'is_string')) > 0 && $key <> "Data") { // assositaive array
$sub = new $NamespaceKey(json_encode($value));
$this -> {$key} = $sub;
}else{ // numrical array
if($this -> ItemType <= 4 ) $key = "Node";
$NamespaceKey = "Data\\$key";
for($i=0;$i<=(count($value)-1); $i++) {
$sub = $NamespaceKey(json_encode($value[$i]));
if($key == 'Node' ) {
$this -> Data = (object) $sub;
}else{
$this -> {$key}[$i] = (object) $sub;
}
}
}
Public Function ClientKey( $Value = "" ) : UUID {
if( DEBUG ) echo '[DEBUG] Method: ' . __METHOD__ . "\r\n";
if( $Value != "" ) {
$UUID = New UUID();
$UUID -> Value = $Value;
$this -> ClientKey = (Object) $UUID;
#Return (Object) $Value;
}else{
if( $this -> ClientKey != Null ) {
Return (Object) $this -> ClientKey;
}
}
Return new ClientKey;
} #EoF ClientKey
?>
<?php declare(strict_types=1);
Namespace Data;
class ClientKey implements \JsonSerializable {
public $Value = String;
public function __construct( String $json = 'false') {
$this->Value = Null;
if( DEBUG ) echo '[DEBUG] Class: ' . __CLASS__ . ' Method: ' . __METHOD__ . "\r\n";
if( $json <> 'false' ) { $this -> set($json); }
private function set($JSONData) {
if( DEBUG ) echo '[DEBUG] Method: ' . __METHOD__ . "\r\n";
$data = json_decode($JSONData, true);
foreach( $data AS $key => $value ) {
if( property_exists(__CLASS__,$key) ) {
if( DEBUG ) echo "Key: [$key] ";
if( is_array($value) ) {
if( DEBUG ) echo "Value: [Array]\r\n";
$sub = new $key(json_encode($value));
$this -> {$key} = (object) $sub;
}else{
if( DEBUG ) echo "Value: [$value]\r\n";
$this -> {$key} = $value;
}
}
}
} # EoF Set
Public Function jsonSerialize($pretty = false) {
if( $pretty ) {
return json_encode(get_object_vars($this), JSON_PRETTY_PRINT);
}else{
return json_encode(get_object_vars($this));
}
}
} # EoF Class
?>
Request.Data.php
已通过 JSON
键为 ClientKey
的字符串Data\ClientKey::__Construct
Value
类(class)Data\ClientKey::Value
_ E_NOTICE
Key: [ClientKey] Value: [Array]
[DEBUG] Autoload Method: {closure}-Class Name: Data\ClientKey
[DEBUG] Autoload path: data/ClientKey.data.php
<br />
<b>Warning</b>: Use of undefined constant String - assumed 'String' (this will throw an Error in a future version of PHP) in <b>/var/www/html/data/Request.data.php</b> on line <b>302</b><br />
[DEBUG] Class: Data\ClientKey Method: Data\ClientKey::__construct
[DEBUG] Method: Data\ClientKey::set
Key: [Value] Value: [D49AD5645F8310896545C0D3354ECC0A]
Request.data.php
.
Client.Data.php
是
Request.data.php
的子类型这个应用程序所在的阶段是“deSerialize”阶段
最佳答案
解决方法找到了,属性$Value
内Data\ClientKey
被错误地设置为 String
, 删除了这个,错误就消失了。
关于php - 使用未定义的常量字符串 - 从变量调用类名时假定为 'String',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56304907/
如何使用 SPListCollection.Add(String, String, String, String, Int32, String, SPListTemplate.QuickLaunchO
我刚刚开始使用 C++ 并且对 C# 有一些经验,所以我有一些一般的编程经验。然而,似乎我马上就被击落了。我试过在谷歌上寻找,以免浪费任何人的时间,但没有结果。 int main(int argc,
这个问题已经有答案了: In Java 8 how do I transform a Map to another Map using a lambda? (8 个回答) Convert a Map>
我正在使用 node + typescript 和集成的 swagger 进行 API 调用。我 Swagger 提出以下要求 http://localhost:3033/employees/sear
我是 C++ 容器模板的新手。我收集了一些记录。每条记录都有一个唯一的名称,以及一个字段/值对列表。将按名称访问记录。字段/值对的顺序很重要。因此我设计如下: typedef string
我需要这两种方法,但j2me没有,我找到了一个replaceall();但这是 replaceall(string,string,string); 第二个方法是SringBuffer但在j2me中它没
If string is an alias of String in the .net framework为什么会发生这种情况,我应该如何解释它: type JustAString = string
我有两个列表(或字符串):一个大,另一个小。 我想检查较大的(A)是否包含小的(B)。 我的期望如下: 案例 1. B 是 A 的子集 A = [1,2,3] B = [1,2] contains(A
我有一个似乎无法解决的小问题。 这里...我有一个像这样创建的输入... var input = $(''); 如果我这样做......一切都很好 $(this).append(input); 如果我
我有以下代码片段 string[] lines = objects.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.No
这可能真的很简单,但我已经坚持了一段时间了。 我正在尝试输出一个字符串,然后输出一个带有两位小数的 double ,后跟另一个字符串,这是我的代码。 System.out.printf("成本:%.2
以下是 Cloud Firestore 列表查询中的示例之一 citiesRef.where("state", ">=", "CA").where("state", "= 字符串,我们在Stack O
我正在尝试检查一个字符串是否包含在另一个字符串中。后面的代码非常简单。我怎样才能在 jquery 中做到这一点? function deleteRow(locName, locID) { if
这个问题在这里已经有了答案: How to implement big int in C++ (14 个答案) 关闭 9 年前。 我有 2 个字符串,都只包含数字。这些数字大于 uint64_t 的
我有一个带有自定义转换器的 Dozer 映射: com.xyz.Customer com.xyz.CustomerDAO customerName
这个问题在这里已经有了答案: How do I compare strings in Java? (23 个回答) 关闭 6 年前。 我想了解字符串池的工作原理以及一个字符串等于另一个字符串的规则是
我已阅读 this问题和其他一些问题。但它们与我的问题有些无关 对于 UILabel 如果你不指定 ? 或 ! 你会得到这样的错误: @IBOutlet property has non-option
这两种方法中哪一种在理论上更快,为什么? (指向字符串的指针必须是常量。) destination[count] 和 *destination++ 之间的确切区别是什么? destination[co
This question already has answers here: Closed 11 years ago. Possible Duplicates: Is String.Format a
我有一个Stream一个文件的,现在我想将相同的单词组合成 Map这很重要,这个词在 Stream 中出现的频率. 我知道我必须使用 collect(Collectors.groupingBy(..)
我是一名优秀的程序员,十分优秀!