我正在使用这个有效的代码:
$this->path_medium = $this->PICTURES . "$this->file_hash-2.jpg";
但是,我需要更新它,因为它不是很可读;
$this->file_hash
是一个变量。
-2.jpg
是我附加到变量的字符串。
解释器如何知道变量在哪里结束和字符串从哪里开始。
我正在使用这个有效的代码:
$this->path_medium = $this->PICTURES . "$this->file_hash-2.jpg";
但是,我需要更新它,因为它不是很可读;
$this->file_hash
是一个变量。
-2.jpg
是我附加到变量的字符串。
解释器如何知道变量在哪里结束和字符串从哪里开始。
您的代码恰好按原样工作的原因是因为-
它不是变量名中的有效字符。PHP 在遇到无效变量名字符的边界处停止解析变量名。如果您尝试这样做:
$this->path_medium = $this->PICTURES . "$this->file_hash2.jpg";
PHP 会认为$this->file_hash2
是被引用的变量。
有几种方法可以解决这个问题。我个人的偏好是根本不将变量括在引号中,如下所示:
$this->path_medium = $this->PICTURES . $this->file_hash . '-2.jpg';
您还可以{}
在变量周围使用以提高可读性:
$this->path_medium = $this->PICTURES . "{$this->file_hash}-2.jpg";
解释器如何知道变量在哪里结束和字符串从哪里开始。
不包含 (-) 字符的变量。像 ( echo "$var-$var";
) 然后 PHP 在这种情况下将 file_hash 视为变量。
来自http://www.php.net/manual/en/language.variables.basics.php
变量名称遵循与 PHP 中其他标签相同的规则。有效的变量名称以字母或下划线开头,后跟任意数量的字母、数字或下划线。作为正则表达式,它会这样表达:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
尝试:
$this->path_medium = $this->PICTURES . $this->file_hash . "-2.jpg";
另外,我怎样才能更新这个,所以更清楚?
将花括号包裹在变量周围:
$this->path_medium = "{$this->PICTURES}{$this->file_hash}-2.jpg";
(或使用连接,就像你对第一个变量所做的那样)
口译员怎么知道
我假设它将在变量的第一个无效字符处停止(-
其中之一)
在语法上不正确将变量插入字符串,因此您必须使用@Sean 代码,否则编译器无法“拆分”变量文本。