【发布时间】:2019-04-08 21:08:47
【问题描述】:
我试图在我的类中的函数中返回一个字符串数组
当我尝试使用私有静态数组时,它会返回以下错误:
致命错误:第 17 行 /home/developer/projects/api/src/public/Sql.php 中的常量表达式包含无效操作
这是我的课
<?php
namespace App;
/**
* Class Sql
*
* @return (Array) (Strings)
*/
Class Sql {
private static $columns = (implode(",", array('product_id','model','viewed','ups','downs','location','price','quantity')));
public function getColumns() {
echo "<pre>";
print_r(self::$columns);
echo "</pre>";
exit();
}
}
是语法有问题还是我做了不该做的事?
正确的做法是什么?
【问题讨论】:
-
因为您对 implode 的调用不是静态的,必须在运行时解决。常量必须真正定义为常量。
-
您不能对静态变量使用表达式。这意味着您不能在分配中使用 implode,只需在构造函数或访问静态变量的方法中调用它。
-
@Matt Clark,谢谢你的回答!不是重复的,得分为重复的,不明白我实际上问的是什么
-
您的问题与标记为骗子的问题没有什么不同。你们都尝试动态分配一个常量,这是你做不到的。