好吧,我想要做的是制作一些东西,所以我可以称之为
$this->model->users->getInfomation('name');或类似于我的框架上的similer但是php给我一个严格的标准从空值创建默认对象
protected function model($model)
{
$path = "features". DS ."models". DS . $model .".php";
require $path;
$class = 'Model'. ucfirst($model);
$this->model->$model = new $class;
}
Run Code Online (Sandbox Code Playgroud)
我们可以做到这样它会以某种方式符合标准吗?
编辑*
这个函数在类Application中,所以我可以从我们的控制器扩展它们,比如博客扩展应用程序,然后调用像$ this-> model-> blog这样的东西就像我上面做的那样,当我做类似的事情时
protected function model($model)
{
$path = "features". DS ."models". DS . $model .".php";
require $path;
$class = 'Model'. ucfirst($model);
$this->$model = new $class;
}
Run Code Online (Sandbox Code Playgroud)
是的,上面的代码工作正常 $this->blog->getSomething();,但不知何故,我想让他们在一个组,如上面的问题,所以如果我们想得到类似的东西$this->model->blog->getSomething();
谢谢你的时间.
亚当拉马丹
我想在PHP中创建类似于加载器的东西,所以我使用了这段代码:
<?php
$x=1;
while($x<=100) {
echo "Loading: $x %<br>";
$x++;
}
?>
Run Code Online (Sandbox Code Playgroud)
这样它将显示从"加载1%"到"加载100%".但是,这将导致所有出现的一个在新线出现后不会消失.因此,我想知道如何使新行显示并且旧的消失,并且这在页面加载后开始,因此用户将能够观看实际加载的加载器从1%到100%.
更新:我知道我应该使用JS和/或Ajax来实现它,我只是想知道是否有办法在PHP中也这样做:)
我有一个JSON字符串:
"[{\"is_translator\":false,\"follow_request_sent\":false,\"statuses_count\":1058}]"
Run Code Online (Sandbox Code Playgroud)
json_decode()在字符串上使用PHP 并执行print_r输出:
Array
(
[0] => stdClass Object
(
[is_translator] =>
[follow_request_sent] =>
[statuses_count] => 1058
)
)
Run Code Online (Sandbox Code Playgroud)
这表明它是有效的JSON.
但是使用Jackson Library会出错:
线程"main"中的异常org.codehaus.jackson.map.JsonMappingException:无法在[来源:java.io.StringReader@a761fe;中的START_ARRAY标记中反序列化java.util.LinkedHashMap的实例.line:1,column:1]
这是简单的代码:
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Map;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
public class tests {
public static void main(String [] args) throws IOException{
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> fwers = mapper.readValue("[{\"is_translator\":false,\"follow_request_sent\":false,\"statuses_count\":1058}]", new TypeReference <Map<String, Object>>() {});
System.out.println(fwers.get("statuses_count"));
}
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我有什么问题和解决方案?
谢谢.
我知道你可以像这样创建一个数组:
$a = array();
Run Code Online (Sandbox Code Playgroud)
并向其添加新的名称值对,如下所示:
$a['test'] = 'my new value';
Run Code Online (Sandbox Code Playgroud)
甚至可以省略第一行,虽然做法不好!
我发现对象更容易阅读和理解,所以我所做的是获取名称值对的数组并将其转换为对象:
$a = (object)$a;
Run Code Online (Sandbox Code Playgroud)
因此我可以访问参数:
$a->test;
Run Code Online (Sandbox Code Playgroud)
创建一个数组开始的额外开销似乎很浪费,是否可以简单地创建一个对象,然后以某种方式添加名称值对,就像我对数组一样?
谢谢
我已经使用Facebook解码了JSON响应$my_friends = json_decode(file_get_contents($frens));并print_r($my_friends);给出了以下响应:
stdClass Object
(
[data] => Array
(
[0] => stdClass Object
(
[name] => Mrinal Kumar Rai Baruah
[id] => 546111977
)
[1] => stdClass Object
(
[name] => Roshan Khangembam
[id] => 553139665
)
[2] => stdClass Object
(
[name] => Tarunesh Kumar Saurav
[id] => 620690126
)
.........................
)
)
Run Code Online (Sandbox Code Playgroud)
我是JSON的新手,非常困惑.如何迭代上面的响应来获取名称?
虽然PHP中的类不需要明确扩展stdClass,但我想知道这样做是否存在某种最佳实践或好处.
stdClass在宣布上课时我应该延长吗?
有关参考,请参阅PHP中的什么是stdClass?和PHP:对象,转换为对象.
我有这个数组从数据库中获取最后一个表.但是索引包含一个对象而不仅仅是一个字符串.
我需要从下面实现一些字符串操作才能获得部分table15
Array
(
[0] => stdClass Object
(
[table_name] => table15
[create_time] => 2009-11-24 13:10:04
)
)
Run Code Online (Sandbox Code Playgroud)
有什么建议?
编辑:
我正在使用ExtJs,我有点困惑.此数组是从以下PDO代码生成的:
$sql = "SELECT table_name, create_time FROM information_schema.TABLES WHERE table_schema = 'database_name' ORDER BY CREATE_TIME desc LIMIT 1";
$ostmt = $this->odb->query($sql);
return $ostmt->fetchAll(PDO::FETCH_OBJ);
Run Code Online (Sandbox Code Playgroud)
这将返回上面打印的数组.我不知道数组的名称,因为它是这样生成的......
还有其他想法吗?
非常感谢.