В PHP оба 'my name'
и "my name"
являются строками. Вы можете узнать больше об этом в руководстве по PHP .
Вещь, которую вы должны знать, это
$a = 'name';
$b = "my $a"; == 'my name'
$c = 'my $a'; != 'my name'
. В PHP люди используют одиночную кавычку для определения константа, например 'a'
, 'my name'
, 'abc xyz'
, используя двойную кавычку для определения строки, содержащей идентификатор, такой как "a $b $c $d"
.
И еще:
echo 'my name';
быстрее, чем
echo "my name";
, но
echo 'my ' . $a;
медленнее, чем
echo "my $a";
Это верно для других, используемых в строке.
Если вы уже используете EL 3.0 (Java EE 7, WildFly, Tomcat 8, GlassFish 4 и т. д.), вы можете использовать для этого новый оператор +=
:
<h:commandButton ... action="#{someController.doSomething(id += 'SomeTableId')}" />
Если вы еще не находитесь на EL 3.0, а левая - подлинный экземпляр java.lang.String
(и, следовательно, не такой, например, java.lang.Long
), используйте функцию EL 2.2 для вызова прямых методов с аргументами, которые затем применяются к String#concat()
:
<h:commandButton ... action="#{someController.doSomething(id.concat('SomeTableId'))}" />
Или, если вы еще не используете EL 2.2, используйте JSTL <c:set>
, чтобы создать новую переменную EL с конкатенированными значениями, только вложенными в значение:
<c:set var="tableId" value="#{id}SomeTableId" />
<h:commandButton ... action="#{someController.doSomething(tableId)}" />