php - 评估某个数组部分
问题描述
好的,我在网上找了几个小时,我很困惑如何在我的情况下使用 eval() 所以我知道 eval 是邪恶的,但我需要
并且出于个人原因我仍然想使用 eval 所以我怎样才能让变量 $part 像这样正常工作。
$numbers= array($part);
这意味着
$numbers= array(4,6,2,22,11);
但它不工作所以我怎么能用 eval 做到这一点?这是我失败的代码。
<?php
$part= eval(4,6,2,22,11);
$numbers= array($part);
sort($numbers);
$arrlength=count($numbers);
$output='';
for($x=0;$x<$arrlength;$x++) {
$output .= $numbers[$x].'<br>';
}
echo $output;
?>
这是我得到的错误
Parse error: syntax error, unexpected ',' in C:\path\example.php on line 3
解决方案
eval仅将字符串作为 php 代码运行,您的使用是错误的,因为 2,4,6 不是 php 语言中的代码。文档是如何说的
eval - 将字符串评估为 PHP 代码
这将起作用。
$stringNumbers = "4,6,2,22,11";
$part= eval("return array(\".$stringNumbers.\");");
$numbers= $part;
推荐阅读
- java - 从 JAR 文件中读取目录内容
- javascript - 选择选项更改 URL
- regex - 标记同一目录下多个文本文件中的所有英文单词
- javascript - Javascript在文本文件中写入int值
- google-apps-script - javascript 前后的 UrlFetchApp
- spring-boot - 在 Spring Boot Rest 中测试端点对 openapi 合约的合规性
- spring - 无法访问 /actuator 端点
- javascript - 跨越所有单词而不跨越 html
- java - 如何在预定义的 Java 类中编写新方法
- python - 确保在 ProcessPoolExecutor.submit 返回之前完成酸洗