Iniciante PHP, alguém pode me explicar?

Então eu estou estudando PHP pela codecademy, e passei por um dos desafios fazendo um código meio que aleatório, será que alguém poderia me explica a ultima linha deste código?

<?php
    $name = "Lucas";
    $lenght = strlen($name);
    $rand = rand(0, $lenght -1);
    print substr($name, $rand, 1);
?>

Que tal você colocar o que entendeu e nós comentamos o quão perto você está da resposta correta? Assim fica mais interessante.

Se você executou o código, viu o resultado dele. A partir do resultado (executando mais de uma vez), pode deduzir o que acontece.

Por exemplo, o que faz a função rand() ? Você já pesquisou? E a strlen() ? E substr()? print() ? Após cada execução, o valor de $lenght permanece o mesmo, ou muda? E o da variável $rand?

Abraço.

<?php         
    $name = "Lucas"; // Armazenei meu nome em uma variavel
    $length = strlen($name); // Peguei a quantidade de caracteres do meu nome, e salvei na variável 
    //$lenght

?>
$rand = rand (0, $lenght -1); //A função rand é imprimir ou salvar um numero aleatório de acordo com o parâmetro(eu acho que é isso) que foi passado, então aqui estou salvando na variável $rand um caractere do meu nome que começa pode estar na posição 0 e vai até a a ultima.

print substr($name, $rand, 1); // Aqui eu sei que estou imprimindo uma substring, mas não entendi muito bem a parte dentro dos parenteses…

Não sei se estou certo do que estou falando mas basicamente foi o que eu entendi até agora.

É bem simples.
O primeiro parâmetro é a string que você que pegar só uma parte, o segundo parâmetro é a partir de qual posição você que começar. O terceiro parâmetro é opcional, se for positivo é a quantidade de caracteres que a substring deve possuir, se for negativo é a quantidade de caracteres que a substring deve ocultar. Recomendo ler a documentação: http://php.net/manual/pt_BR/function.substr.php

Alguns exemplos:

echo substr('abcdef', 1);     // bcdef
echo substr('abcdef', 1, 3);  // bcd
echo substr('abcdef', 0, 4);  // abcd
echo substr('abcdef', 0, 8);  // abcdef
echo substr('abcdef', -1, 1); // f
2 curtidas