• 关于

    如何调用php常量

    的搜索结果

问题

技术运维问题 - MYSQL使用 -RDS for MySQL 连接数满情况的处理

李沃晟 2019-12-01 21:42:54 1071 浏览量 回答数 0

问题

【Java学习全家桶】1460道Java热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:15 27612 浏览量 回答数 19

回答

要访问array或object您如何使用两个不同的运算符。 数组 要访问数组元素,您必须使用,[]或者您不会看到太多,但也可以使用is {}。 echo $array[0]; echo $array{0}; //Both are equivalent and interchangeable 声明数组与访问数组元素之间的区别 定义数组和访问数组元素是两件事。所以不要把它们混在一起。 要定义一个数组,可以使用array()或对于PHP> = 5.4 []并分配/设置一个数组/元素。当您使用[]或{}如上所述访问数组元素时,将获得与设置元素相反的数组元素的值。 // 声明一个数组 $ arrayA = array( / 这里有一些东西 / ) ; $ arrayB = [ / 这里有一些东西 / ];//仅适用于PHP> = 5.4 // 访问数组元素 echo $ array [ 0 ] ; 回声$ array { 0 } ; 访问数组元素 要访问数组中的特定元素,可以使用内部的任何表达式,[]或者{}将其求值为要访问的键: $ array [ (任何表达式) ] 因此,请注意使用什么表达式作为键,以及如何通过PHP对其进行解释: echo $ array [ 0 ]; //键是一个整数;它访问0的元素 echo $ array [ “ 0” ]; //键是一个字符串;它访问0的元素 echo $ array [ “ string” ]; //键是一个字符串;它使用键“ string”访问元素 echo $ array [ CONSTANT ]; //键是一个常量,它被替换为对应的值 echo $ array [ cOnStAnT ]; //键也是常量而不是字符串 echo $ array [ $ anyVariable ] //键是一个变量,它被替换为'$ anyVariable'中的值 echo $ array [ functionXY() ]; //键将是函数 的返回值 访问多维数组 如果彼此之间有多个数组,则只需一个多维数组。要访问子数组中的数组元素,只需使用multiple即可[]。 echo $array["firstSubArray"]["SecondSubArray"]["ElementFromTheSecondSubArray"] // ├─────────────┘ ├──────────────┘ ├────────────────────────────┘ // │ │ └── 3rd Array dimension; // │ └──────────────────── 2d Array dimension; // └───────────────────────────────────── 1st Array dimension; 对象 要访问对象属性,必须使用->。 echo $ object- >属性; 如果在另一个对象中有一个对象,则只需使用多个->即可获得对象属性。 echo $objectA->objectB->property; 注意: 另外,如果您使用的属性名称无效,也必须小心!因此,要查看所有问题,您可能会遇到一个无效的属性名称,请参阅此问题/答案。如果您在属性名称的开头有数字,则尤其要注意这一点。 您只能从班级外部访问具有公共可见性的属性。否则(私有或受保护的),您需要一个方法或反射,您可以使用该方法或反射来获取属性的值。 数组与对象 现在,如果您将数组和对象彼此混合在一起,则只需查看是否现在访问数组元素或对象属性并为其使用相应的运算符即可。 //宾语 echo $ object-> anotherObject-> propertyArray [“ elementOneWithAnObject”]-> property; //├────┘├──────────┘├─────────────├─────────── ───────┘├──────┘ //││││└──属性; //│││└────────────────────────数组元素(对象);使用->访问属性“ property” //││└──────────────────────数组(财产);使用[]访问数组元素'elementOneWithAnObject' //│└──────────────────────────── ────────────属性(对象);使用->访问属性'propertyArray' //└────────────────────────────── ───────────────────对象;使用->访问属性“ anotherObject” //数组 echo $ array [“ arrayElement”] [“ anotherElement”]-> object-> property [“ element”]; //├───┘├──────────┘├────────────┘├────┘├────── ├├───────┘ //│││││└──数组元素; //││││└────────────属性(数组);使用[]访问数组元素'element' //│││└────────────────────属性(对象);使用->访问属性“ property” //││└────────────────数组元素(对象);使用->访问属性“对象” //│└──────────────────────────── ────────数组元素(array); 使用[]访问数组元素'anotherElement' //└────────────────────────────── ─────────────数组 使用[]访问数组元素'arrayElement' 我希望这给您一个大概的想法,当它们相互嵌套时如何访问数组和对象。 注意: 是否调用数组或对象取决于变量的最外部。所以[new StdClass]是一个阵列,即使它已(嵌套)对象内的,并$object->property = array();是一个对象,即使它已(嵌套)阵列内。 并且,如果不确定是否有对象或数组,请使用gettype()。 如果有人使用您以外的其他编码样式,请不要感到困惑: //Both methods/styles work and access the same data echo $object->anotherObject->propertyArray["elementOneWithAnObject"]->property; echo $object-> anotherObject ->propertyArray ["elementOneWithAnObject"]-> property; //Both methods/styles work and access the same data echo $array["arrayElement"]["anotherElement"]->object->property["element"]; echo $array["arrayElement"] ["anotherElement"]-> object ->property["element"]; 数组,对象和循环 如果您不仅要访问单个元素,还可以遍历嵌套的数组/对象并遍历特定维的值。 为此,您只需要访问要循环的维度,然后就可以循环浏览该维度的所有值。 作为示例,我们采用一个数组,但它也可以是一个对象: Array ( [data] => Array ( [0] => stdClass Object ( [propertyXY] => 1 ) [1] => stdClass Object ( [propertyXY] => 2 ) [2] => stdClass Object ( [propertyXY] => 3 ) ) ) 如果在第一个维度上循环,则将从第一个维度获取所有值: foreach($ array as $ key => $ value) 这意味着在第一维中,您只有一个带有key($key)data和value($value)的元素: Array ( //Key: array [0] => stdClass Object ( [propertyXY] => 1 ) [1] => stdClass Object ( [propertyXY] => 2 ) [2] => stdClass Object ( [propertyXY] => 3 ) ) 如果在第二维上循环,则将从第二维获取所有值: foreach($ array [“ data”] as $ key => $ value) 在这里意味着在第二个维度你有3个元素与键($key)0,1,2和值($value): stdClass Object ( //Key: 0 [propertyXY] => 1 ) stdClass Object ( //Key: 1 [propertyXY] => 2 ) stdClass Object ( //Key: 2 [propertyXY] => 3 ) 这样,您就可以遍历任何维,无论它是数组还是对象。 分析var_dump()/ print_r()/ var_export()输出 所有这三个调试功能都输出相同的数据,只是以另一种格式或带有一些元数据(例如,类型,大小)。因此,在这里我想展示如何读取这些函数的输出,以了解/了解如何从数组/对象访问某些数据。 输入数组: $array = [ "key" => (object) [ "property" => [1,2,3] ] ]; var_dump() 输出: array(1) { ["key"]=> object(stdClass)#1 (1) { ["property"]=> array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } } } print_r() 输出: Array ( [key] => stdClass Object ( [property] => Array ( [0] => 1 [1] => 2 [2] => 3 ) ) ) var_export() 输出: array ( 'key' => stdClass::__set_state(array( 'property' => array ( 0 => 1, 1 => 2, 2 => 3, ), )), ) 因此,您可以看到所有输出都非常相似。而且,如果现在要访问值2,则可以从值本身开始,您要访问该值,然后逐步到达“左上角”。 1.我们首先看到,值2在键为1的数组中 array(3){ // var_dump() [0] => 整数(1) [1] => 整数(2) [2] => 整数(3) } 数组 // print_r() ( [0] => 1 [1] => 2 [2] => 3 ) 数组( // var_export() 0 => 1 1 => 2 2 => 3, ), 这意味着我们必须使用[]/ {}来访问值2 [1],因为该值具有键/索引1。 2.接下来,我们看到将数组分配给具有对象名称属性的属性 对象(stdClass)#1(1){ // var_dump() [“ property”] => / 此处数组 / } stdClass 对象 // print_r() ( [property] => / 此处为数组 / ) stdClass :: __ set_state ( array(// var_export() 'property' => / 此处数组 / )) 这意味着我们必须使用->访问对象的属性,例如->property。 所以直到现在我们知道,我们必须使用->property[1]。 3.最后,我们看到最外面的是一个数组 array(1){ // var_dump() [“ key”] => / 对象和数组在这里 / } 数组 // print_r() ( [key] => / 对象和数组在这里 / ) 数组( // var_export() 'key' => / 对象和数组在这里 / ) 如我们所知,我们必须使用来访问数组元素[],我们在这里看到我们必须使用["key"]来访问对象。现在,我们可以将所有这些部分放在一起并编写: echo $array["key"]->property[1]; 输出将是: 2 不要让PHP欺骗您! 您需要了解一些事情,这样您就不必花费大量时间来寻找它们。 “隐藏”字符 有时,您的按键中包含字符,这些字符在浏览器的第一次外观中不会出现。然后您要问自己,为什么无法访问该元素。这些字符可以是:标签(\t),新线(\n),空格或HTML标签(例如, )等。 作为示例,如果您查看的输出,print_r()则会看到: Array ( [key] => HERE ) 然后,您尝试通过以下方式访问元素: echo $arr["key"]; 但是您会收到通知: 注意:未定义的索引:键 这很好地表明必须有一些隐藏的字符,因为即使键看起来很正确,也无法访问该元素。 这里的技巧是使用var_dump()+查看源代码!(备选:highlight_string(print_r($variable, TRUE));) 突然之间,您可能会看到以下内容: array(1) { [" key"]=> string(4) "HERE" } 现在您将看到,您的键中带有一个html标记+一个换行符,这是您最初没有看到的,因为print_r()浏览器没有显示它。 所以现在,如果您尝试执行以下操作: echo $arr["\nkey"]; 您将获得所需的输出: HERE 永远不要相信XML 的输出,print_r()或者var_dump()如果您看XML 您可能将XML文件或字符串加载到对象中,例如 现在,如果您使用var_dump()或,print_r()您将看到: SimpleXMLElement Object ( [item] => SimpleXMLElement Object ( [title] => test ) ) 如您所见,您看不到标题的属性。因此,正如我说永远不要相信的输出var_dump()或print_r()当你有一个XML对象。始终用于asXML()查看完整的XML文件/字符串。 因此,只需使用下面显示的方法之一: echo $xml->asXML(); //And look into the source code highlight_string($xml->asXML()); header ("Content-Type:text/xml"); echo $xml->asXML(); 然后您将获得输出:

保持可爱mmm 2020-02-09 14:02:47 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

0元试用32+款产品,最高免费12个月!拨打95187-1,咨询专业上云建议!

问题

【javascript学习全家桶】934道javascript热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:22 6202 浏览量 回答数 1

问题

深入理解Magento – 第五章 – Magento资源配置 :报错

kun坤 2020-06-14 15:20:08 1 浏览量 回答数 1

问题

深入理解Magento – 第五章 – Magento资源配置:配置报错 

kun坤 2020-06-02 14:46:13 0 浏览量 回答数 1

问题

深入理解Magento – 第五章 – Magento资源配置 - 配置报错

montos 2020-06-03 20:29:52 2 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 阿里云双十一主会场 阿里云双十一新人会场 1024程序员加油包 阿里云双十一拼团会场 场景化解决方案 阿里云双十一直播大厅