忍受我,我正在学习. 我经常看到如下所示的片段:
<?p
$imageArray = get_field('image_field');
$imageAlt = $imageArray['alt'];
$imageURL = $imageArray['url'];
?>
Run Code Online (Sandbox Code Playgroud)
它具有教学意义,清晰有序.但是在查询数组之前是否有必要获取整个数组?我可以不在一行中定义变量吗?像下面的东西(这不起作用,我尝试过的其他变种都没有):
$imageAlt = get_field('image_field', ['alt']);
$imageURL = get_field('image_field', ['url']);
Run Code Online (Sandbox Code Playgroud)
是的你可以.
从PHP 5.4开始,可以直接对函数或方法调用的结果进行数组解除引用.之前只能使用临时变量.- 来源
$imageAlt = get_field('image_field')['alt'];
您提出的问题可以通过提出两个问题来回答:
它可行吗?
是! 您不必将数组存储在变量中,以后再重新使用它.
例如,你可以这样做:
$imageAlt = get_field('image_field')['alt'];
Run Code Online (Sandbox Code Playgroud)
注意:这将在PHP 5.4+中使用,称为:数组解除引用.
但这不是唯一的考虑因素......
这样做是不是一个好主意?
不,在许多情况下,这不是一个好主意.get_field()根据您的具体情况,该功能可能会做很多工作,每次调用它时,相同的工作都会多次进行.
假设您使用该count()功能.它将计算数组中的项目数.要做到这一点,它必须遍历所有项目才能获得值.
如果count()每次需要验证数组中的项目数时都使用该函数,那么您每次都要执行计数的任务.如果您的阵列中有10个项目,您可能不会注意到.但是如果你的数组中有数千个项目,这可能会导致计算代码的延迟问题(也就是说它会很慢).
这就是为什么你想要做的事情:$count = count($myArray);并使用变量而不是调用函数.
这同样适用于您的问题.
| 归档时间: |
|
| 查看次数: |
80 次 |
| 最近记录: |