Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Atom编辑器:如何为php以不同方式突出显示单引号和双引号字符串_Php_Atom Editor - Fatal编程技术网

Atom编辑器:如何为php以不同方式突出显示单引号和双引号字符串

Atom编辑器:如何为php以不同方式突出显示单引号和双引号字符串,php,atom-editor,Php,Atom Editor,我最近安装了ClearLinux,它们的默认设置是Atom编辑器,所以我尝试了一下。有了php自动完成,我几乎非常激动。直到我意识到我已经习惯了我的方式,我需要对单引号字符串和双引号字符串进行不同的突出显示 在php中,双引号字符串仍将被解析为$variables和空格转义字符,如\n和\t;而单引号字符串是文字,单引号之间没有解释 我养成了总是使用单引号作为数组键的习惯,单引号字符串与双引号字符串不一样会扰乱我的潜意识。我找了不少,找不到解决办法 有人知道实现此突出显示方案的方法吗? 截图来自

我最近安装了ClearLinux,它们的默认设置是Atom编辑器,所以我尝试了一下。有了php自动完成,我几乎非常激动。直到我意识到我已经习惯了我的方式,我需要对单引号字符串和双引号字符串进行不同的突出显示

php
中,双引号字符串仍将被解析为
$variables
和空格转义字符,如
\n
\t
;而单引号字符串是文字,单引号之间没有解释

我养成了总是使用单引号作为数组键的习惯,单引号字符串与双引号字符串不一样会扰乱我的潜意识。我找了不少,找不到解决办法

有人知道实现此突出显示方案的方法吗?

截图来自Geany。即使在Geany,获得这种设置也不是标准。谢天谢地,十年前,这在他们的主题中是正常的,因此我能够更改当前可用的主题,以查找
string_2
并将其更改为与
string_2=string_1
不同的颜色

为了更好地帮助人们理解
php
,以及
之间的差异可能具有的重要性,以下是字符串在上下文中表现不同的一种方式:

$customer=“比尔•霍桑”;
$\u address=“123 Main St\nGlendale,加利福尼亚州91202”;
$output=“亲爱的$customer,请确认以下地址是否正确:\n\n$\u address\n”;
//$output呈现为:
//尊敬的Bill Waltz,请确认以下地址是否正确:
//
//主街123号
//加利福尼亚州格伦代尔,邮编:91202
// 
$output='亲爱的$customer,请确认以下地址是否正确:\n\n$\u address\n';
//$output呈现为:
//尊敬的$customer,请确认以下地址是否正确:\n\n$\u地址\n

使用命令调色板中的命令
编辑器:Log cursor scope
查看应用于文本部分的范围。此范围应用于DOM中的文本,每个部分前面都有
语法--

语言php
的情况下,双引号字符串的作用域是
string.quoted.double.php
,单引号字符串的作用域是
string.quoted.single.php
。下面是一个如何针对它们的示例。请注意,这部分是纯CSS/Less;我对它不太了解,因此可能更简洁re

// ~/.atom/styles.less
atom-text-editor[data-grammar="text html php"] { // target PHP
  .syntax--string.syntax--quoted {
    &.syntax--double,
    &.syntax--double .syntax--punctuation.syntax--definition.syntax--string { // get the quote chars too
      color: red;
    }

    &.syntax--single,
    &.syntax--single .syntax--punctuation.syntax--definition.syntax--string {
      color: yellow;
    }
  }
}

例如,尝试使用此

但是..字符串=字符串,不考虑引号.,(另外..从外观上看,您对SQL注入持开放态度..)-可能需要为此编写一些代码..此外,无论如何混合引号都不好,只要在我看来使用单引号即可.除非您更喜欢可读性差和/或需要使用\n(即使存在.PHP_EOL)请不要转移注意力。此代码不面向公众。字符串也不是字符串:在“Injector$inj_”标签中解释
$variables
是好的“将导致
喷油器DX良好
,而'Injector$inj_label is good'显示为
喷油器$inj_label良好
。据我所知,这两个渲染输出不相同。我使用的是phpsform和agree字符串。我看到的是
中变量上的高亮显示“Injector$inj_label is good”
(你的深紫色),而不是
“Injector$inj_label是好的”
,这对我来说是最重要的。我可以清楚地看到它是解析的还是文字的。我真的很感激你所描述的内容,它只会帮助我更加一致,数组键等等。@treyBake你实际上是不正确的。
php
将在双引号内解释比较。如果有一个
$string
变量集,
'$string'!=“$string”
就像一般查询一样-如果在编辑器中用不同的引号突出显示“hello”会发生什么?我注意到单引号似乎只用于数组键。我想知道它们是否有一些正则表达式要执行
$var[]
并高亮显示该键。如果它是双引号,它还会高亮显示相同的键吗?(如中所示,它仍然是黄色的,带有数组键的双引号)我做了
查看->切换命令选项板
,它说在编辑器输入中找不到命令。