相关疑难解决方法(0)

Reference — What does this symbol mean in PHP?

What is this?

This is a collection of questions that come up every now and then about syntax in PHP. This is also a Community Wiki, so everyone is invited to participate in maintaining this list.

Why is this?

It used to be hard to find questions about operators and other syntax tokens.¹
The main idea is to have links to existing questions on Stack Overflow, so it's easier for us to reference them, not to copy over content from …

php arguments symbols operators

4314
推荐指数
21
解决办法
63万
查看次数

如何访问数组/对象?

我有以下数组,当我这样做时print_r(array_values($get_user));,我得到:

Array (
          [0] => 10499478683521864
          [1] => 07/22/1983
          [2] => email@saya.com
          [3] => Alan [4] => male
          [5] => Malmsteen
          [6] => https://www.facebook.com  app_scoped_user_id/1049213468352864/
          [7] => stdClass Object (
                   [id] => 102173722491792
                   [name] => Jakarta, Indonesia
          )
          [8] => id_ID
          [9] => El-nino
          [10] => Alan El-nino Malmsteen
          [11] => 7
          [12] => 2015-05-28T04:09:50+0000
          [13] => 1
        ) 
Run Code Online (Sandbox Code Playgroud)

我尝试按如下方式访问数组:

echo $get_user[0];
Run Code Online (Sandbox Code Playgroud)

但这显示了我:

未定义0

注意:

我从Facebook SDK 4获得这个数组,所以我不知道原来的阵列结构.

我怎样才能email@saya.com从数组中获取值作为示例?

php arrays properties class object

58
推荐指数
2
解决办法
5万
查看次数

为什么$ {0x0}正确?

以下代码完美运行:

${0x0} = 'test';
echo ${0x0}; // prints "test"
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚为什么.0x0(或者0,非十六进制人称之为)是一个随机容器,它可能是任何数字,但php变量不能以数字开头.{ }这里使用的有什么特别之处,它们的局限性是什么?

php

37
推荐指数
2
解决办法
2082
查看次数

{}如何影响PHP中的MySQL查询?

以下2个查询之间有什么区别?

mysql_query("UPDATE table SET name = '$name'");

mysql_query("UPDATE table SET name = '{$name}'");
Run Code Online (Sandbox Code Playgroud)

php mysql

13
推荐指数
2
解决办法
9091
查看次数

PHP:{$ foo}和$ {foo}之间有区别吗

有时您需要向PHP说明实际上变量名称是什么.我发现一位同事和我的做法略有不同.假设您有一个变量,$foo并希望输出_constant_string附加我一直在使用

return "<input type='hidden' name='${foo}_constant_string' value='true' />";
Run Code Online (Sandbox Code Playgroud)

而我的同事正在使用

return "<input type='hidden' name='{$foo}_constant_string' value='true' />";
Run Code Online (Sandbox Code Playgroud)

(稍微做作的例子来简化它).

我的快速测试没有发现明显的差异,但我很好奇:有区别吗?是否有理由偏爱另一个?

编辑:我上面的例子使用了字符串,但我的问题更为笼统 - 我应该明确地这么说.我知道你可以使用花括号进行转义,但是如果在两种使用方式之间存在(在任何情况下)差异,我都没有找到具体的观点.我得到了答案:没有字符串(这是"重复"帖子的内容),但是用于数组和对象(感谢@dragoste).

php

10
推荐指数
2
解决办法
635
查看次数

这些PHP字符串插值语法之间有什么区别

"${varname}""{$varname}"PHP的字符串插值有什么区别?(注意位置$)

php文档说你可以使用其中任何一种,但是没有清楚地解释这两种方法之间的区别.实际上有区别吗?

php interpolation

9
推荐指数
1
解决办法
130
查看次数

对象键中的连字符

我有一个像这样的stdClass对象:

stdClass Object ( [key-west] => 1 [disney-land] => 1 ) 
Run Code Online (Sandbox Code Playgroud)

我试图检索这样的值:

$objectName->key-west

但返回的值是0.为什么?以及如何将其检索为1?

谢谢

php arrays object

6
推荐指数
1
解决办法
4420
查看次数

大括号{}在SQL查询中做了什么?

例如,检查以下查询;

$query = "SELECT * FROM users WHERE user='{$_POST['username']}';  
Run Code Online (Sandbox Code Playgroud)

什么用途?

在字符串上下文中,我确实理解它解决的问题.
我可以做像$ animal ="cat"echo"{$ animal} s"这样的东西.//输出猫

但在我上面发布的SQL中,我只是不明白.以下不一样好吗?

$query = "SELECT * FROM users WHERE user='$_POST['username']' AND password='$_POST['password']'";  
Run Code Online (Sandbox Code Playgroud)

那么,使用{和}获取方便的地方?欣赏SQL上下文中的任何示例?

php mysql

6
推荐指数
1
解决办法
2万
查看次数

如何从字段列表创建动态查询?

我正在尝试使用PHP和MySQL构建动态查询.

我所做的是创建一个表(即.field_relations)这个字段有5列

  1. field_name(字段名称"ie.count_id,account_name ....")
  2. display_label(字段应如何移位到使用"ie.帐户ID,名称")
  3. table_name(此字段属于"即帐户"的表)
  4. related_to(与不同表的字段关系"如果有的话."默认值为NULL)
  5. related_to_field(指向"if any"的字段.默认值为NULL)

这是一个示例数据 field_name display_label table_name related_to related_to_field account_id Account ID accounts NULL NULL account_name Name accounts NULL NULL first_name First Name contacts NULL NULL last_name Last Name contacts NULL NULL contact_id Contact ID contacts NULL NULL account_id Account ID contacts accounts account_id task_id Task ID tasks NULL NULL subject Subject tasks NULL NULL owner_id Assigned To contacts contacts contact_id daily_sales Sales transactions accounts account_id sold_on Sold …

php mysql dynamicquery

5
推荐指数
1
解决办法
1642
查看次数

在字符串中的美元符号后使用花括号是错误的

我试图理解复杂变量语法中两种可能的语法变体之间的区别.PHP允许两种变体:

$foo = 'bar';
$bar = "${foo}bar is allowed"; //or
$bar = "{$foo}bar is allowed";
Run Code Online (Sandbox Code Playgroud)

使用任一语法时都不会生成错误/警告/通知.我注意到两者没有区别,但是PHP手册只显示了{$foo}变体.
使用其他变体是错误的吗?它会不会给我带来任何问题?

php

5
推荐指数
2
解决办法
504
查看次数