在双引号内使用内爆

时间:2017-08-15 23:49:46

标签: php

为什么这无效:

$foo = "blah blah {implode(',', $some_array['a key'])}";

给出错误:

  

意外'' (T_ENCAPSED_AND_WHITESPACE),期待标识符

我认为使用数组的键是原因。

是否可以在双引号内使用implode,或者我是否必须先将字符串放在变量中?

2 个答案:

答案 0 :(得分:4)

从手册:

  

复杂(卷曲)语法

     

可以通过此语法

包含任何带有字符串表示的标量变量,数组元素或对象属性

你不能在大括号内调用函数,这就是你得到错误的原因。

您可以使用句点来破坏字符串并连接:

public interface FlickrServiceInterface {

    @GET("?method=flickr.photos.getSizes")
    Call<PhotoSizes> getPhotoSizes(@Query("api_key") String apiKey, @Query("format") String format, @Query("nojsoncallback") String jsonCallback, @Query("photo_id") String photoId);

    @GET("?method=flickr.photos.getRecent")
    Call<PhotosList> getPhotos(@Query("api_key") String apiKey, @Query("format") String format, @Query("nojsoncallback") String jsonCallback);
}

答案 1 :(得分:4)

您现在使用它的方式是专为类职业设计的:例如:

$foo = "blah blah {$user->name}";

如果你想在不事先声明变量的情况下使用函数,只需使用它:

$foo = 'blah blah ' . implode(',', $some_array['a key']);