• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

php学习笔记

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

好记性比不过乱笔头,记录成长路上的小问题。

1 print <<<EOF 中的数组输出

 今天在做php168二次开发中用到html模板的print <<<EOF,发现一个问题。

$s=array();
$s['id']="test";

print <<<EOF

$s[‘id’];

EOF

运行出错!


改为
print <<<EOF

$s[id];

EOF

输出test

不是数组的key用‘’包含起来好点的吗,怎么用了还出错。搞不明白

二、PHP大小写敏感规则
1、 大小写敏感
a、 变量名区分大小写
b、 常量名默认区分大小写,通常都写为大写
c、 php
.ini配置项指令区分大小写
2、大小写不敏感
函数名、方法名、类名 不区分大小写, 但推荐使用与定义时相同的名字
魔术常量不区分大小写,推荐大写
NULLTRUE、FALSE不区分大小写
类型强制转换,不区分大小写

三 、php中的对象可以调用对象所在类得static方法

<?php

error_reporting(-1);
function foobar($arg, $arg2) {
echo __FUNCTION__, " got $arg and $arg2\n";
}
class foo {
var $name;

public function __construct()
{
//$this->name='default';

}
static function bar($arg, $arg2) {
echo __METHOD__, " got $arg and $arg2\n";
}
}


// Call the foobar() function with 2 arguments
call_user_func_array("foobar", array("one", "two"));

// Call the $foo->bar() method with 2 arguments
$foo = new foo;
call_user_func_array(array($foo, "bar"), array("three", "four"));

$foo->bar("three", "four");
结果:
foobar got one and two foo
::bar got three and four foo::bar got three and four
结论:可以用对象调用静态方法($foo->bar)
?>
1
也可以用类名::对象方法调用,但是调用的方法中不能还有对象的成员参数
<?php


class foo {
var $name;

public function __construct()
{
//$this->name='default';

}
function bar($arg='参数1', $arg2='参数2') {
echo __METHOD__, " got $arg and $arg2\n";//,$this->name;
//如果这里不注释$this->name这条就会出错
Using $this when not in object context
因为在下面foo::bar()的时候没有这个$this
}
}

foo
::bar();
结果:foo
::bar got 参数1 and 参数2

结论:
可以直接通过类名::成员方法(),只要方法内部没有用到对象的上下文
但是会出现php提示:Strict standards: Non-static method foo::bar() should not be called statically 
?>

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ecshop php商城系统数据库结构及表的介绍分析发布时间:2022-07-10
下一篇:
PHP 数据类型发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap